吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4540|回复: 6
收起左侧

[C&C++ 转载] 根据进程id查找窗体句柄的方法 百度找到的不好用 自己写了个更简单的分享给大家

[复制链接]
77341991 发表于 2014-4-28 10:53
本帖最后由 77341991 于 2014-4-28 15:15 编辑

//方法一   SendMessage   WM_CLOSE  无效
HWND GetProcessIdToHand(DWORD dwProcessID)
{
       HWND hWnd = FindWindowEx(HWND_MESSAGE,0,NULL,0); //HWND_MESSAGE 仅查找所有消息窗口
       int nCount = 0;
        while(hWnd)
        {
                DWORD pid = 0;
                DWORD dwTheardId = GetWindowThreadProcessId(hWnd,&pid);

                //OutputDebugString(sPath+"\r\n");
                if(dwProcessID == pid)
                        break;
                hWnd = GetNextWindow(hWnd,GW_HWNDNEXT);  //同级别下一个
        }
        return hWnd;
}

//方法2    使用SendMessage有效   建议用这个
HWND GetProcessIdToHand(DWORD dwProcessId)
{
         HWND _hWnd = FindWindow(0,0);
         _hWnd = GetNextWindow(_hWnd,GW_HWNDLAST); //同级别最后一个
         while(_hWnd)
         {
                DWORD lpdwProcessId;//标识地址符
                DWORD tid=::GetWindowThreadProcessId(_hWnd,&lpdwProcessId);//取进程ID
   
                //CString strName = GetProcessExeName(lpdwProcessId);
                if(lpdwProcessId == dwProcessId)
                {
                           TCHAR lpClassName[MAX_PATH] = {0};
                           GetClassName(_hWnd,lpClassName,MAX_PATH);
                           if(stricmp(lpClassName,"这里填写你要查找的主窗体类名") == 0)  //
                           {
                                    return _hWnd;
                           }
                }
                _hWnd = GetNextWindow(_hWnd,GW_HWNDPREV);  //同级别上一个
         }
         return 0;
}



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

mageciqing 发表于 2014-4-28 11:13
很专业    赞一个
lvhpxa 发表于 2014-4-28 11:38
星期五 发表于 2014-4-28 11:38
lt20148 发表于 2014-4-28 12:34
感谢楼主分享。
fly_xsh 发表于 2014-4-28 13:06
大神!真大神啊!
zeromaggot 发表于 2014-4-28 20:29
学习了,
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 22:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表