WIN32进程快照以及进程ID和句柄查找

MFC中通过窗口句柄获得进程路径 头文件: #pragma comment(lib,"coredll.lib") #pragma comment(lib,"Psapi.lib") #include <Psapi.h> #include "winbase.h" 一个单击按钮事件中的代码实现 void CEXCELtestDlg::OnBnClickedButton2() { // TODO: 在此添加控件通知处理程序代码 HWND hWnd = ::FindWindow(_T("XLMAIN"), NUL 阅读详情

     要对进程进行某种操作,就必须首先知道该进程的进程句柄或者进程ID,否则一切无从谈起,对于程序自己创建的子进程来说,CreateProcess函数返回了进程句柄和进程ID,但如果需要调试系统中已经运行的进程,那就必须首先获取它们的句柄才行。Win32中并没有直接获取其他进程句柄的函数,但如果知道进程ID,可以由此得到进程句柄,所以可以首先通过某种途径获取进程ID。

 

一、获取进程ID

1. 从窗口句柄获取进程句柄

      获取进程ID的方法之一是使用GetWindowThreadProcessId函数,这个函数可以从一个窗口句柄获得创建该窗口的进程的进程ID,而通过FindWindow函数得到窗口句柄是很简单的,所以GetWindowThreadProcessId函数的用途相当广泛。该函数的用法是:

DWORD GetWindowThreadProcessId(
  HWND hWnd,             // handle to window
  LPDWORD lpdwProcessId  // process identifier
);

      其中hWnd参数指定需要用来获取进程ID的窗口句柄,lpdwProcessId指向一个双字变量,函数在这里返回创建窗口的进程ID,函数的返回值是目标进程中创建该窗口的线程的线程句柄(一个有用的副产品!)。
 

2. 通过快照来获取进程ID

 

      每一个应用程序实例在运行起来后都会在当前系统下产生一个进程,大多数应用程序均拥有可视界面,用户可以通过标题栏上的关闭按钮关闭程序。但是也有为数不少的在后台运行的程序是没有可视界面的,对于这类应用程序用户只能通过CTRL+ALT+DEL热键呼出"关闭程序"对话框显示出当前系统进程列表,从中可以结束指定的任务。显然,该功能在一些系统监控类软件中还是非常必需的,其处理过程大致可以分为两步:借助系统快照实现对系统当前进程的枚举和根据枚举结果对进程进行管理。本文下面即将对此过程的实现进行介绍。


  当前进程的枚举

  要对当前系统所有已开启的进程进行枚举,就必须首先获得那些加载到内存的进程当前相关状态信息。在Windows操作系统下,这些进程的当前状态信息不能直接从进程本身获取,系统已为所有保存在系统内存中的进程、线程以及模块等的当前状态的信息制

Rk3568 百兆以太网RMII模式DTS配置详解 本文详细解析了RK3568芯片在百兆以太网RMII模式下的DTS配置方法,包括时钟树配置、PHY接口模式定义及实际工程中的进阶设置。通过实战案例调试技巧,帮助开发者快速解决RMII模式下的常见问题,提升工业控制设备的网络稳定性。 阅读详情

相关推荐

隧道裂缝检测【C++PCL】

我们团队注重每一个细节,确保代码的可读性、可维护性可扩展性达到最高标准。我们严格遵循行业最佳实践,采用模块化面向对象的设计原则,使得我们的代码结构清晰且易于理解。我们的点云服务更是引以为傲。我们的技术团队拥有深厚的专业知识丰富的经验,能够提供高度准确高效的点云处理服务。无论是点云的获取、存储还是分析,我们都能够满足客户的需求,并提供出色的解决方案。我们的技术实力也是无与伦比的,拥有广泛的技术背景深入的专业知识。

weixin_45196569的博客 833

python根据windows窗体句柄获取进程进程线程ID

python根据windows窗体句柄获取进程进程线程ID 依赖库:win32 ,psutil 实例代码 from win32 import win32process import psutil def test_windows_window(): app = win32gui.GetWindowText(67526) if win32gui.IsWindowVisible(6...

qq_29022265的博客 5804

上市公司-高管团队稳定性数据(2006-2023年)

01、数据介绍高管团队稳定性不仅关注团队成员的离职或变动情况,还考虑团队凝聚力、团队参与积极性、内部冲突以及组织结构稳定性等因素。这些因素在一定时期内保持相对稳定的状态,也被视为高管团队稳定性的体现。对企业创新管理、战略决策以及长期发展等方面具有重要影响。高管团队的稳定性有助于企业形成稳定的经营环境文化氛围,有利于企业的长期发展。数据名称:上市公司-高管团队稳定性数据数据年份:2006-2023年参考文献:高管团队稳定性会影响企业技术创新绩效吗-张兆国02、相关数据及指标证券代码、统计截止日期、人员ID、姓名、具体职务、具体职务ID、任职开始日期、任职结束日期、是否在职、任期、距离离任剩余日期、离职原因、职务名称、代码、年份、STMT。

根据窗口句柄来获取进程ID

[DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); //根据窗口来获取进程ID, public static int GetCurrentProcessID() {

bossaiaboy的专栏 1万+

根据窗口句柄如何取得其对应的应用程序名称路径?

   DWORD   dwPID;                     String   strPID;                     void   *pTH;                     bool   bOK;                     HWND   hWindow;//根据这个名柄查找其可执行文件                     String  

yaozhu88的专栏 1442

根据session查询服务器信息,二、Session

什么是sessionCookie是存储在客户端方,Session是存储在服务端方,客户端只存储SessionId。在上一篇我们了解了什么是Cookie,既然浏览器已经通过Cookie实现了有状态这一需求,那么为什么又来了一个Session呢?这里我们想象一下,如果将账户的一些信息都存入Cookie中的话,一旦信息被拦截,那么我们所有的账户信息都会丢失掉。所以就出现了Session,在一次会话中将重...

weixin_31212247的博客 3308

WIN32 进程快照以及进程 ID 句柄查找

要对进程进行某种操作,就必须首先知道该进程进程句柄或者进程ID,否则一切无从谈起,对于程序自己创建的子进程来说,CreateProcess函数返回了进程句柄进程ID,但如果需要调试系统中已经运行的进程,那就必须首先获取它们的句柄才行。Win32中并没有直接获取其他进程句柄的函数,但如果知道进程ID,可以由此得到进程句柄,所以可以首先通过某种途径获取进程ID。   一、获取进程ID

yuanhubilie的专栏 1084

WIN32进程快照以及进程ID句柄查找(转)

要对进程进行某种操作,就必须首先知道该进程进程句柄或者进程ID,否则一切无从谈起,对于程序自己创建的子进程来说,CreateProcess函数返回了进程句柄进程ID,但如果需要调试系统中已经运行的进程,那就必须首先获取它们的句柄才行。Win32中并没有直接获取其他进程句柄的函数,但如果知道进程ID,可以由此得到进程句柄,所以可以首先通过某种途径获取进程ID。   一、获取进程ID  

2047

win32 获取窗口句柄的方法

win32 获取窗口句柄的方法   第一种方法是根据窗口句柄值获取窗口句柄 使用spy++获取指定窗口的窗口句柄值,因为句柄值是16进制数,所以前面加0x,然后进行强制转换为HWND类型。 HWND hWnd=(HWND)0x00280726;   第二种方法是使用FindWindow或者FindWindowEx根据窗口类名窗口标题找到相应的窗口句柄 HWND FindWind

醉浪漫的博客 9383

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

第一部分: 根据进程名获取进程ID。 首先我们需要了解三个windows API函数: HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, DWORD th32ProcessID ); CreateToolhelp32Snapshot函数可以得到系统进程快照句柄,如果函数调用成功返回快照句柄,否则返回INVALID_HA...

zjx_cfbx的博客 7744

python:根据进程名获取主窗口句柄

python:根据进程名获取主窗口句柄 具体运行性能暂不考虑,作为一种思路保存。代码如下: import time import psutil from win32 import win32gui from win32 import win32api from win32 import win32process strCmd="cmd.exe" #map类型,键值为进程ID,value为窗口句柄。...

kaili94的博客 4931

通过操作系统的进程号查看数据库的session

在工作中很多新手会遇到这种问题,就是操作系统显示有个PID占用的CPU很高,导致整个系统运行很慢, 同时又不敢轻易的对这个PID进行KILL操作,很是头疼。 今天就大家分享下,怎么通过操作系统的PID查找相应的数据库s...

cltt980248285的博客 341

win32 查找进程pid

【代码】win32 查找进程pid

weixin_44197671的博客 531

win32两种获取进程句柄的方式

获取运行中的进程句柄 获取进程句柄的方式有很多种,之前有说到CreateProcess函数,该函数在一个进程中打开另一个进程,并且得到子进程句柄,不过有时候我们更想获得正在运行的进程句柄。获取正在运行的进程句柄也有几种方式,下面介绍一下几个函数。 FindWindow invoke FindWindow,lpClassName,lpWindowName 该函数返回一个窗口句柄,...

weixin_43575859的博客 5122

【python句柄获取】——简单明了的获取窗口句柄,并使用句柄操作获取相应内容(全网最详细)

点个赞留个关注吧!! 所使用模块 import sys import win32gui import win32con 通过标题名称获取句柄 #通过窗口标题获取句柄 hld = win32gui.FindWindow(None,u"此电脑") 通过句柄获得标题 # 通过句柄获得标题 def get_title(hwnd): title = win32gui.GetWindowText(hwnd) print('窗口标题:%s' % (title)) retu...

₰₯₮ 的博客 17万+

c++ 多线程编程常用的几个函数

c++多线程编程中,常用的几个函数  CreateThread(NULL,0,MyThread,NULL,0,&dw);  //创建一个线程 ExitThread(3);

gukesdo的专栏 1315
上一篇: ACE网络开发中,各种Reactor实现的总结
下一篇: ACE学习手记-----ACE_Log_Msg
csKerrydn
博客等级 码龄19年 9粉丝 6原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值