VC编程实现OICQ登录号码清除器

OICQ已经成为现在这个网络世界中最为时尚的聊天、即时通讯工具了!对于它,许多程序员都写了些相关小工具,像一些OICQ聊天辅助工具、OICQ密码获取器、聊天记录查看器等等,分别用作于不同的用途。

其时,我也对于QQ这个好东东比较痴迷,但在使用过程始终发现有些情况的出现是我所不愿意看到的。比如说:在网吧上网,疯狂QQ后,你的聊天记录,你的QQ号码全部留在了网吧的机器中。此时,你从网吧离开。又来一位聊QQ者,可能后来的这个人喜欢搞恶作剧,用一些小工具,把你的QQ号码及密码盗取,为已所用。或者看一些你的聊天记录,探清你的隐私,这显然不是你所希望的。可能,此时你会想 ,这没有什么,我只要把QQ号码那个文件夹删除就可以了。是的,这确实是一个好办法,可是这还有一个问题解决不了,就是你的QQ仍会留在QQ登录的对话框中,那么你该怎么办?本文就是介绍如何实现清除登录号码!

我不知道细心的QQ用户注意到没有,在QQ主目录下面有一个DAT文件夹,在此文件夹下有一个名为OICQ2000.cfg文件。该文件就是存有在本台机器上有多少个QQ号码,每个号码的长度值,每一个具体号码!下面详细介绍一下该文件并讲解一下如何用程序实现清除!

以下示例是在作者机器上文件内容:(号码为作者的QQ号文件内容以16进制值表示)

00 00 00 00 00 00 00 01 00 00 00 08 00 00 00 35 33 37 34 38 38 37 36

以上文件内容每两个字位为一个字节。

前9个字节是这个机器上共有多少个QQ号,最大值为999999999个(不少吧)接着三个字节为00 00 00 这是分隔符。接着是一个字节数据08,表示当前QQ号码的长度为几位,为08表示为8位,接着又是分隔符,接着用这长度值字节数来存储实际的QQ号码的ASCII码值!如果有多个,就接着在后面存储分隔符(3字节)、QQ号码长度(1字节)、分隔符(3字节)、实际号码,以此类推…………。

示例代码如下所示:

struct QQhead
{
 unsigned char head[9];//总共有的QQ号码数 9字节
 unsigned char spea[3];//分隔符,3字节
}; //oicq2000.cfg文件头结构
QQhead thishead;
//m_filename为要操作的文件名,就是oicq200.cfg,存储的是QQ的完成路径
ofile.Open(m_filename,CFile::modeRead,&fe);//打开oicq2000.cfg文件
ofile.Read (thishead.head,9);// 读出文件头,QQ号码数
long i,sum=0;
int number;
for(i=0;i<8;i++)
{
 number=thishead.head[i];
 sum=sum+number*10^(7-i);
}//处理QQ号码个数
number=thishead.head[8];
sum=sum+number;
CString str,stritem,leng;
unsigned char len[1];
char stritem1[99];
number=0;
ofile.Read (thishead.spea,3); // 读出分隔符
for(i=0;i<sum;i++)
{
 ofile.Read (len,1); //读出该QQ号码长度;
 ofile.Read (thishead.spea,3); // 读出分隔符
 number=len[0];
 ofile.Read (stritem1,number);
 stritem1[number]='\0';
 CListBox *plist;
 plist=(CListBox *)GetDlgItem(IDC_LIST1);
 str.Format ("%s",stritem1);
 plist->AddString(str); //循环插入列表,并显示出来
}

上面这段代码的是从oicq2000.cfg文件中读取出所有的QQ号码并显示listbox控件中的功能。相信读者已经看明白了!

当然要实现我所做的软件的功能,就是在listbox双击一条QQ号就将其从oicq2000.cfg中去除的功能,读者参考上面的数据结构应该很快就能完成!

知道了以上原理,那我们就可以写出如下代码段来完成从文件中读取和向文件中存入的程序!(示例代码为本人所发布的软件部分代码。QQ登录号码清除器是作者本人写的一个完全共享的QQ小工具,软件下载地址为http://free.tsee.net/acehq/Hidenum.exe。也可以CSDN网站注册软件中找到,链接地址为http://www.csdn.net/cnshare/soft/10/10135.html!软件实现环境为VC++6.0,WINDOWQS 2000 SERVER操作系统,赛扬667,30G硬盘,128M内存。

时间: 2024-10-03 15:21:24

VC编程实现OICQ登录号码清除器的相关文章

c++-VC#的window应用中如何清除窗口所有添加的控件??

问题描述 VC#的window应用中如何清除窗口所有添加的控件?? VC#的window应用中如何清除窗口所有添加的控件?? 有什么快捷方式吗?? 解决方案 那最简单的,在解决方案管理器中选择窗体的那项,直接del删除,然后再创建一个同名的空白窗体. 解决方案二: 开发环境中,选中窗体,ctrl+a, delete 运行中 foreach (Control c in Controls.OfType<Control>().ToList()) { Controls.Remove(c); } 解决方

vc++-VC++编程中HICON,这个是图标句柄,想这种带H的都是引用对象的地址的,是吗??

问题描述 VC++编程中HICON,这个是图标句柄,想这种带H的都是引用对象的地址的,是吗?? VC++编程中HICON,这个是图标句柄,想这种带H的**都**是引用对象的地址的,是吗??不会引用其他的吧,句柄只是引用对象的地址吧? 解决方案 局柄的数据结构并没有公开. Windows程序一书中的理解:句柄是一个32位的整数,实际上是windows在内存中维护的一个对象(窗口等)内存物理地址列表的整数索引.因为windows的内存管理经常会将当前空闲对象的内存释放掉,当需要时访问再重新提交到物理

C++/VC++编程的疑难问题及解答

本人在用C++/VC++编程时,遇到的一些比较难以解决的问题,在经过百思得其解之后,总结了一些解决方法,希望这些经验之谈能对大家有所帮助. 1.[VC问题] 编辑框内的换行? 答:假设要在编辑框内输出"12345\n6789".首先要设置编辑框的Multiline属性为TRUE,在输出时,除了要加\n,还要有\r.也就是说,如果要12345和6789在两行显示,需要输出12345\r\n6789.代码如下: m_strData = "12345\r\n67890";

冰点还原精灵清除器的使用大全

冰点还原精灵(DeepFreeze)是由Faronics公司出品的一款系统还原软件,它可自动将系统还原到初始状态,保护系统不被更改,能 够很好的抵御病毒的入侵以及人为的对系统有意或无意的破坏.还原精灵的安装不会影响硬盘分区和操作系统.轻松安装.动态保护.实时瞬间恢复,操作简单.安 装了DeepFreeze的系统,无论进行了安装文件,还是删除文件.更改系统设置等操作,计算机重新启动后,一切将恢复成初始状态.相信对于很多朋友来 说,此软件是陌生的,接下来黑白网的小编将给大家详细的介绍冰点还原精灵清除

vc++-VC编程中提取源程序代码应用另一个程序

问题描述 VC编程中提取源程序代码应用另一个程序 请问各位大神,现在我有一段VC二维码识别程序的源代码,如何将其提取并编译成一个新的程序,满足从指定位置访问图片文件,输出识别信息?求指导. 在VC编程环境下实现,谢谢! 解决方案 既然有源代码,那么你要做的就是程序得到输入文件路径,然后传给源码中的函数对应参数,获取函数返回结果,进行处理. 解决方案二: 参考:http://blog.csdn.net/liuyu60305002/article/details/8713399 解决方案三: 有一段

vc 编程老是出现error

问题描述 vc 编程老是出现error #include ""stdafx.h""#include ""math.h"" int main(int argc char* argv[]){ double abcx1x2mtemp; scanf(""%lf %lf %lf""&a&b&c); m=b*b-4*a*c; x1=(sqrt(m)-b)/(2*a); x2=

vc++-关于vc编程的小问题:怎么启动程序之前弹出列表框让用户选择

问题描述 关于vc编程的小问题:怎么启动程序之前弹出列表框让用户选择 如图,想实现的功能是,在启动程序时先弹出窗口让用户进行选择(列表框),待用户做出选择以后再进入响应的程序界面,请问怎么实现启动时先弹出这样一个列表框,看别人的程序没发现什么关于列表框的资源啊,.. 解决方案 就你贴出的这个界面,是MFC自带的.只要你定义了2种或者以上的DocumentTemplete,自然就会出现这个选择框. 解决方案二: http://dev.yesky.com/398/2341898_2.shtmlhtt

vc-利用VC++编程实现求直线与圆的交点。

问题描述 利用VC++编程实现求直线与圆的交点. 要求:(1) 利用对话框绘制直线,对话框中输入直线两端点的坐标. (2)利用对话框绘制圆,对话框中输入圆的圆心与半径. (3)绘制直线与圆得采用第3章的图形生成算法实现. (4)若直线与圆没有交点,在屏幕上打印"该直线与圆相离". (5)若直线与圆只有一个交点,在屏幕上打印"该直线与圆相切",并以相切点为圆心半径为5绘制红色的圆. (6)若直线与圆有两个交点,在屏幕上打印"该直线与圆相交",并以交

用vc++编程,用GDI绘制一个直径为100毫米的圆,高手指教。

问题描述 用vc++编程,用GDI绘制一个在鼠标点击处为圆心直径为100毫米的圆,高手指教.注意直径单位为毫米 解决方案 解决方案二: 解决方案三:哈哈,你在都大家玩阿.1:100毫米转换像素不?这里面涉及到了坐标系和缩放比.2:最好用GDI+来做这个.3:考虑到你对100毫米这个毫米字样很敏感,直接D2DDirectWrite吧,没有毛边.解决方案四:条件不足啊,在什么设备上绘图?设备分辨率?解决方案五:毫米转换像素,然后画圆.