VC編程實現(xiàn)OICQ登錄號碼清除器

字號:

OICQ已經(jīng)成為現(xiàn)在這個網(wǎng)絡世界中最為時尚的聊天、即時通訊工具了!對于它,許多程序員都寫了些相關小工具,像一些OICQ聊天輔助工具、OICQ密碼獲取器、聊天記錄查看器等等,分別用作于不同的用途。
    其時,我也對于QQ這個好東東比較癡迷,但在使用過程始終發(fā)現(xiàn)有些情況的出現(xiàn)是我所不愿意看到的。比如說:在網(wǎng)吧上網(wǎng),瘋狂QQ后,你的聊天記錄,你的QQ號碼全部留在了網(wǎng)吧的機器中。此時,你從網(wǎng)吧離開。又來一位聊QQ者,可能后來的這個人喜歡搞惡作劇,用一些小工具,把你的QQ號碼及密碼盜取,為已所用?;蛘呖匆恍┠愕牧奶煊涗?,探清你的隱私,這顯然不是你所希望的??赡埽藭r你會想 ,這沒有什么,我只要把QQ號碼那個文件夾刪除就可以了。是的,這確實是一個好辦法,可是這還有一個問題解決不了,就是你的QQ仍會留在QQ登錄的對話框中,那么你該怎么辦?本文就是介紹如何實現(xiàn)清除登錄號碼!
    不知道細心的QQ用戶注意到?jīng)]有,在QQ主目錄下面有一個DAT文件夾,在此文件夾下有一個名為OICQ2000.cfg文件。該文件就是存有在本臺機器上有多少個QQ號碼,每個號碼的長度值,每一個具體號碼!下面詳細介紹一下該文件并講解一下如何用程序?qū)崿F(xiàn)清除!
    以下示例是在作者機器上文件內(nèi)容:(號碼為作者的QQ號文件內(nèi)容以16進制值表示)
    00 00 00 00 00 00 00 01 00 00 00 08 00 00 00 35 33 37 34 38 38 37 36
    以上文件內(nèi)容每兩個字位為一個字節(jié)。
    前9個字節(jié)是這個機器上共有多少個QQ號,值為999999999個(不少吧)接著三個字節(jié)為00 00 00 這是分隔符。接著是一個字節(jié)數(shù)據(jù)08,表示當前QQ號碼的長度為幾位,為08表示為8位,接著又是分隔符,接著用這長度值字節(jié)數(shù)來存儲實際的QQ號碼的ASCII碼值!如果有多個,就接著在后面存儲分隔符(3字節(jié))、QQ號碼長度(1字節(jié))、分隔符(3字節(jié))、實際號碼,以此類推…………。
    示例代碼如下所示:
    struct QQhead
    {
    unsigned char head[9];//總共有的QQ號碼數(shù) 9字節(jié)
    unsigned char spea[3];//分隔符,3字節(jié)
    }; //oicq2000.cfg文件頭結構
    QQhead thishead;
    //m_filename為要操作的文件名,就是oicq200.cfg,存儲的是QQ的完成路徑
    ofile.Open(m_filename,CFile::modeRead,&fe);//打開oicq2000.cfg文件
    ofile.Read (thishead.head,9);// 讀出文件頭,QQ號碼數(shù)
    long i,sum=0;
    int number;
    for(i=0;i<8;i++)
    {
    number=thishead.head[i];
    sum=sum+number*10^(7-i);
    }//處理QQ號碼個數(shù)
    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    {
    ofile.Read (len,1); //讀出該QQ號碼長度;
    ofile.Read (thishead.spea,3); // 讀出分隔符
    number=len[0];
    ofile.Read (stritem1,number);
    stritem1[number]=’’;
    CListBox *plist;
    plist=(CListBox *)GetDlgItem(IDC_LIST1);
    str.Format ("%s",stritem1);
    plist->AddString(str); //循環(huán)插入列表,并顯示出來
    }
    上面這段代碼的是從oicq2000.cfg文件中讀取出所有的QQ號碼并顯示listbox控件中的功能。相信讀者已經(jīng)看明白了!
    當然要實現(xiàn)所做的軟件的功能,就是在listbox雙擊一條QQ號就將其從oicq2000.cfg中去除的功能,讀者參考上面的數(shù)據(jù)結構應該很快就能完成!
    知道了以上原理,那我們就可以寫出如下代碼段來完成從文件中讀取和向文件中存入的程序!(示例代碼為本人所發(fā)布的軟件部分代碼。QQ登錄號碼清除器是作者本人寫的一個完全共享的QQ小工具,考試,大提示軟件下載地址為http://free.tsee.net/acehq/Hidenum.exe。也可以CSDN網(wǎng)站注冊軟件中找到,鏈接地址為http://www.csdn.net/cnshare/soft/10/10135.html!軟件實現(xiàn)環(huán)境為VC++6.0,WINDOWQS 2000 SERVER操作系統(tǒng),賽揚667,30G硬盤,128M內(nèi)存。