看流星社区

 找回密码
 注册账号
查看: 3624|回复: 10

VS2019 用进程pid取主窗口句柄hwnd代码分享

[复制链接]

该用户从未签到

发表于 2019-12-31 13:59:12 | 显示全部楼层 |阅读模式

网上的基本是全身错误的那个版本,这个代码是经过完善优化后,正确的代码。


  1. HWND GetHwndByPid(DWORD dwProcessID)
  2. {
  3.     HWND h = GetTopWindow(0);
  4.     HWND retHwnd = NULL;
  5.     while ( h )  
  6.     {
  7.         DWORD pid = 0;
  8.         DWORD dwTheardId = GetWindowThreadProcessId( h,&pid);  
  9.         if (dwTheardId != 0)
  10.         {
  11.             if ( pid == dwProcessID && GetParent(h)==NULL && ::IsWindowVisible(h))         
  12.             {
  13.                 retHwnd = h;    //会有多个相等值
  14.                 //    /*
  15.                 char buf[MAX_PATH] = {0};
  16.                 sprintf(buf,"%0x",h);
  17.                 MessageBox(NULL,buf,"提示",MB_OK);
  18.                 //    */
  19.             }
  20.         }
  21.         h  = GetNextWindow(h,GW_HWNDNEXT);
  22.     }
  23.     return retHwnd;
  24. }
复制代码

  • TA的每日心情
    难过
    3 天前
  • 发表于 2020-1-1 21:54:29 | 显示全部楼层
    感谢   分享

    该用户从未签到

    发表于 2020-1-3 18:35:31 | 显示全部楼层
    支持楼主,支持看流星社区,以后我会经常来!

    该用户从未签到

    发表于 2020-1-5 15:51:55 | 显示全部楼层
    微信助手,注册、登陆,解绑,关注公众号,发朋友圈,站街,打招呼,摇一摇,投票,授权各种功能,支持试用,可以根据需求修改功能。下载地址:https://share.weiyun.com/5OJiqOL

    该用户从未签到

    发表于 2020-1-11 00:24:56 | 显示全部楼层
    感谢   分享
    点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
    您需要登录后才可以回帖 登录 | 注册账号

    本版积分规则

    小黑屋|手机版|Archiver|看流星社区 |网站地图

    GMT+8, 2024-3-29 18:18

    Powered by Kanliuxing X3.4

    © 2010-2019 kanliuxing.com

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