一个进程可以拥有很多主窗口,也可以不拥有主窗口,所以这样的函数是不存在的,所幸的是,相反的函数是有的。所以我们可以调用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

通过进程ID获得该进程主窗口的句柄相关推荐

  1. linux与windows查看占用端口的进程ID并杀死进程

    有时候tomcat出现端口被占用,需要查出进程ID并杀死进程. 1.查找占用端口的进程ID(windows与linux一样  8005也可以加上引号   grep可以用findstr替换) 6904就 ...

  2. win32根据进程名获取进程ID或者终止进程

    第一部分: 根据进程名获取进程ID. 首先我们需要了解三个windows API函数: HANDLE WINAPI CreateToolhelp32Snapshot(DWORD dwFlags,DWO ...

  3. Linux进程ID号--Linux进程的管理与调度(三)

    进程ID概述 进程ID类型 要想了解内核如何来组织和管理进程ID,先要知道进程ID的类型: 内核中进程ID的类型用pid_type来描述,它被定义在include/linux/pid.h中 enum ...

  4. 为应用程序池**提供服务的进程意外终止。进程ID是**。进程退出代码是'0x80'

    2010-8-26 11:39  事件类型: 警告  事件来源: W3SVC  事件种类: 无  事件 ID: 7034  日期: 2010-8-XX  事件: XX:XX:XX  用户: XX  计 ...

  5. linux如何查询进程ID和关闭进程

    1.查看端口占用的进程号 (1)比如要查询8080 端口 lsof -i:8080 COMMAND:进行成名,如上说明8080被一个server进程占用 PID:进程的ID,一般杀掉进程时就是指定进程 ...

  6. 使用cat /proc/进程id/maps 查看进程内存映射

    proc/<PID>/maps 查看进程的虚拟地址空间是如何使用的. 该文件有6列,分别为: 地址:库在进程里地址范围 权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有: 偏 ...

  7. linux如何查看DMS的进程id,​linux启动进程的方式

    linux启动进程的方式 最基础的 nohup 方式 这是最简单的方式,也是 linux 新手们很容易搞混淆的一个经典问题: command command > /dev/null comman ...

  8. Kibana停止kibana的方法命令:找到5601端口对应的进程ID 把此进程进行kill即可

    报错 {"type": "log","@timestamp": "2018-11-21T06:32:59Z"," ...

  9. 进程相关(进程Id获取主窗口)

    1.知道进程handle 获取进程名称. PROCESS_INFORMATION* processInfo =(PROCESS_INFORMATION*)pid();    HANDLE hProce ...

最新文章

  1. Navicat 9.1、10.0 简体中文最新版,注册码(For Mysql)
  2. 【机器学习】 - 各种人脸数据集下载地址及说明汇总
  3. HTML5商城开发四 多图或多商品的水平滚动展示
  4. 2014年南京航空航天大学计算机学院推荐研究生公示,2014年南航计算机科学与技术学院考研分数线及复试调剂办法...
  5. Struts2 基础入门
  6. Anaconda Prompt 怎么切换工作路径
  7. 成都理工大学计算机组成原理考试,计算机组成原理试题.doc
  8. robots文件对网站优化有哪些作用
  9. 2010-04-20 代码复用、使用率情况分析
  10. VisionPro FixtureCoord工具解释
  11. Apache 实现AJAX跨域请求
  12. verilog数字系统设计——串入并出移位寄存器
  13. Android 系统 wifi基础知识
  14. EDG一追一追平LGD,四保一阵容的Iboy从来不会让我们失望!
  15. ON1 Photo RAW 2021 15.0.0.9735 快速的 RAW 照片编辑器
  16. vue把localhost改成ip地址无法访问—解决方法
  17. 摘:戒嗔小和尚的博客一
  18. java ssj_java中ssj框架的项目搭建流程
  19. 图的应用——最短路径(迪杰斯特拉算法)
  20. 关于php的搞笑段子,笑死人的笑话搞笑段子10个 搞笑笑话笑死人不偿命

热门文章

  1. 使用Go内置库实现简易httpbin功能
  2. ROS中base_link, odom, fixed_frame, target_frame和虚拟大地图map的关系
  3. Data Artisans发布支持ACID事务的流式处理框架Streaming Ledger
  4. 固态硬盘驱动器在设计上有个安全漏洞 易导致数据损毁
  5. angularJs 之deferred
  6. 搭建Solr集群的推荐方案
  7. 深入理解PHP内核(五)函数的内部结构
  8. 【莫队算法】bzoj3781 小B的询问
  9. VBScript中InStr函数的用法
  10. 我的家庭私有云计划-16