首页 > 技术文章 > 360 模拟点击demo

360 模拟点击demo

360 模拟点击demo
459001c79914aec2d10060c2

#include <iostream.h>
#include <windows.h>
#include <tlhelp32.h>

BOOL Pass360();
DWORD FindProc(char *szExeName);
DWORD WINAPI Find360Thread(LPVOID lpParam);
DWORD WINAPI Kill360Thread(LPVOID lpParam);

int main()
{
cout<<"~~~~~~~~~~~~~~~~~~~Test 360~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"~~~~~~~~~~~~~~~~CodeBy:xets007~~~~~~~~~~~~~~~~~~~"<<endl<<endl;
if(!Pass360())
{
   cout<<"Can Not Find The 360 Process!"<<endl;
   return 0;
}
while(1)
   Sleep(1000*60*6);
return 0;
}

BOOL Pass360()
{
BOOL stat=FALSE;
if(FindProc("360tray.exe"))
{
   stat=TRUE;
   HANDLE hTemp=CreateThread(NULL,NULL,Find360Thread,NULL,NULL,NULL);
   CloseHandle(hTemp);
}
return stat;
}

DWORD FindProc(char *szExeName)
{
DWORD stat=0;
HANDLE handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
pe.dwSize=sizeof(PROCESSENTRY32);
if(Process32First(handle,&pe))
{
   if(stricmp(szExeName,pe.szExeFile)==0)
   {
    stat=pe.th32ProcessID;
   }
   while(Process32Next(handle,&pe)!=FALSE)
   {
    if(stricmp(szExeName,pe.szExeFile)==0)
    {
     stat=pe.th32ProcessID;
     break;
    }
   }
}
return stat;
}
DWORD WINAPI Find360Thread(LPVOID lpParam)
{
cout<<"Finding Thread is working now !"<<endl;
HWND hCurrent;
DWORD dwStyle;
HANDLE hTemp;
char *szButtonOK="确定";
char *szButtonPass="允许此动作";
char szClassName[256];
while(1)
{
   Sleep(1);
   hCurrent=GetForegroundWindow();
   memset(szClassName,0,256);
   GetClassName(hCurrent,szClassName,256);
   if(stricmp(szClassName,"Afx:400000:0")==0)
   {
    dwStyle=GetWindowLong(hCurrent,GWL_STYLE);
    if(0x94000008 == dwStyle)
    {                       
     cout<<"Find A Active 360 Window!"<<endl;
     hTemp=CreateThread(NULL,NULL,Kill360Thread,szButtonPass,NULL,NULL);
     WaitForSingleObject(hTemp,INFINITE);
     CloseHandle(hTemp);
     hTemp=CreateThread(NULL,NULL,Kill360Thread,szButtonOK,NULL,NULL);
     CloseHandle(hTemp);
    }
   }
}
return 0;
}
DWORD WINAPI Kill360Thread(LPVOID lpParam)
{
UINT i;
char szClassName[256];
char szWindowText[256];
char *szButtonName=(char*)lpParam;
for(i=0;i<1024*888;i++)
{
   if(IsWindow((HWND)i))
   {
    memset(szClassName,0,256);
    GetClassName((HWND)i,szClassName,256);
    if(stricmp(szClassName,"Button")==0)
    {
     memset(szWindowText,0,256);
     GetWindowText((HWND)i,szWindowText,256);
     if(stricmp(szWindowText,szButtonName)==0)
     {
      HWND temp=GetParent((HWND)i);
      char tempstr[256]={0};
      GetClassName(temp,tempstr,256);
      if(stricmp(tempstr,"Afx:400000:0")==0)
      {
       cout<<"Send A Click Message To The Button:"<<szButtonName<<endl;
       SendMessage((HWND)i,WM_LBUTTONDOWN,NULL,NULL);
       SendMessage((HWND)i,WM_LBUTTONUP,NULL,NULL);
      }
     }
    }
   }
}
return 0;
}

  1. 本文目前尚无任何评论.
  1. 2009年10月29日16:30 | #1