博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过进程ID获得该进程主窗口的句柄
阅读量:6981 次
发布时间:2019-06-27

本文共 714 字,大约阅读时间需要 2 分钟。

一个进程可以拥有很多主窗口,也可以不拥有主窗口,所以这样的函数是不存在的,所幸的是,相反的函数是有的。所以我们可以调用EnumWindows来判断所有的窗口是否属于这个进程。

typedef struct tagWNDINFO {
  DWORD dwProcessId;   HWND hWnd; } WNDINFO, *LPWNDINFO;
BOOL CALLBACK YourEnumProc(HWND hWnd,LPARAM lParam) {
  DWORD dwProcessId;   GetWindowThreadProcessId(hWnd, &dwProcessId);   LPWNDINFO pInfo = (LPWNDINFO)lParam;   if(dwProcessId == pInfo->dwProcessId)   {
    pInfo->hWnd = hWnd;     return FALSE;   }   return TRUE; }
HWND GetProcessMainWnd(DWORD dwProcessId) {
  WNDINFO wi;   wi.dwProcessId = dwProcessId;   wi.hWnd = NULL;   EnumWindows(YourEnumProc,(LPARAM)&wi);   return wi.hWnd; }

如果这个进程没有窗口,函数返回NULL。

转载于:https://www.cnblogs.com/daxingxing/archive/2011/09/26/2192035.html

你可能感兴趣的文章
uva 10099 The Tourist Guide
查看>>
详解C#break ,continue, return
查看>>
OSG闪存
查看>>
JPA概要
查看>>
php 去除二维数组中的包含某一个值的数组
查看>>
BUTTON标签和INPUT标签的区别【转】
查看>>
shell 命令详解
查看>>
PowerShell自动删除过期数据
查看>>
c# string总结
查看>>
队列的实现与应用
查看>>
PHP框架 Phalcon 1.0.0 beta发布,实测性能强劲
查看>>
程序集信息设置.net
查看>>
分享:When.js 2.0.0 发布,Promises/A 的实现
查看>>
poj1578
查看>>
Build Release Blogs
查看>>
Vim案例两则
查看>>
函数式编程学习之路(一)
查看>>
Win7安装VC++6.0已知的兼容性问题的解决方法
查看>>
数据库连接oracle 10g rman 备份与恢复 之一
查看>>
asp.net开源CMS推荐
查看>>