VC++如何获取目标程序的句柄hProcess
方法一:
任务管理器找到程序的PID,通过PID获取hProcess
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);
方法二:
使用spy++获取目标程序窗口对应的句柄
通过窗口句柄获取PID,再使用方法一的函数获取hProcess
HWND wnd = (HWND)0x0003069C;
DWORD pid;
GetWindowThreadProcessId(wnd, &pid);
方法三:
知道目标程序窗口的名称wndName
通过FindWindow获取窗口句柄,在通过方法二的函数进行获取
HWND wnd = ::FindWindow(NULL, wndName);
方法四:
只知道exe名称,通过遍历应用程序的名称获取运行的进程对应的pid,然后用这个pid使用方法一获取hProcess
通过exe名称获取pid的方法如下:
#include <tlhelp32.h>
bool getPid(DWORD &findPID,CString findExeName)
{//findExeName名称中包含.exe
bool hasfind = false;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("CreateToolhelp32Snapshot调用失败!"));
return hasfind;
}
BOOL bMore = ::Process32First(hProcessSnap, &pe32);
while (bMore)
{
CString exeName = pe32.szExeFile;
DWORD pid = pe32.th32ProcessID;
if (exeName == findExeName)
{
findPID = pid;
hasfind = true;
break;
}
bMore = ::Process32Next(hProcessSnap, &pe32);
}
::CloseHandle(hProcessSnap);
return hasfind;
}
VC++如何获取目标程序的句柄hProcess相关推荐
- VC中获取窗体句柄的各种方法
AfxGetMainWnd AfxGetMainWnd获取自身窗体句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与 ...
- 纯 Win32 SDK程序为什么每次要获取设备描述表句柄
做过Win32 API程序的就会发现,要对窗口输出时,每次都要获取设备描述表句柄:都是对同一个窗口输出,设备描述表是一个:为什么每次都要获取设备描述表句柄呢?获取一次行吗? 做一个Win32 API程 ...
- 点击回应、关闭确认以及另一种获取设备环境句柄的方法
API模板:https://www.cnblogs.com/eternalmoonbeam/p/10793080.html 点击回应: switch (message){--case WM_LBUTT ...
- 怎么样获取桌面图标句柄,并用VC完成随意移动桌面图标地位置?
源地址: http://www.qqgb.com/Program/VC/VCJC/Program_251616.html 桌面图标是放在 SysListView32这个列表中,下面得到了它的句柄,如何 ...
- 获取窗口的句柄方法总结
句柄获取方法(获取该窗口的句柄后,即可向该窗口类类发送消息.处理程序): 例如:::PostMessage("句柄", WM_USER_DRAWVIEWPIC_EDS, 0, ...
- VC中获取窗口句柄的各种方法
AfxGetMainWnd AfxGetMainWnd获取自身窗口句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与 ...
- vbs获取程序窗体句柄_[VBA][高阶应用][类模块]自绘窗体进度条类cProgressBar.cls
纯API自绘窗体的进度条类,废话少说,直接上代码 这个进度条类的调用方式: Private Declare Function FindWindow Lib "user32.dll" ...
- findwindow函数 vb 获取不到句柄_C/C++实战018:获取目录下的指定文件
今天要做的是获取UG安装目录中的后处理文件,后处理文件以"*.pui"为后缀.这里我要做的就是批量获取UG安装目录中符合后缀名的文件名称,然后将这些名称提供给UG对话框进行显示. ...
- VC 怎么获取windows7系统管理员权限
lisunlin0 lisunlin0 等级: #12 得分:0回复于: 2010-02-01 23:07:15 在<windows核心编程>第五版里面有提(尽管是关于vista的,但同样 ...
- VC 之获取硬盘序列号
硬盘物理序列号是硬盘的出厂序列号,它是全球都是唯一的,不会随着系统的安装.硬盘的格式化等操作而改变,跟mac地址一样都具有唯一性. 1,第一步:创建设备对象,得到设备句柄,设备为硬盘. { CStri ...
最新文章
- 计算机科学领域最高荣誉,骄傲!这位毕业于嘉兴一中的数学家,荣获华人数学领域的最高荣誉...
- vector删除第i个元素_[LeetCode] 215. 数组中的第K个最大元素
- Linux 服务器基本防护
- 系统上线后关键用户的工作建议
- shiro框架采取MD5+salt方式加密密码
- 我的世界javamod怎么装_「装修细节」除了中央空调外的高颜值装空调大法
- 精讲23种设计模式-基于装饰模式~设计多级缓存框架
- python语句join_详解Python中的join()函数的用法
- input输入框禁止自动补全和下拉提示
- 盈建科弹性板6计算_YJK参数设置详细解析
- 伍德里奇计量经济学第六章计算机答案,伍德里奇计量经济学导论计算机习题第六章第13题c_6.13...
- visio导入阿里云和aws产品模具
- 韩立刚计算机网络——第五章:传输层
- ubuntu 16.04 插入耳机没有声音
- 微信公众平台开发【素材管理】上传临时素材
- webpack随笔04-webpack5压缩jscss
- MySQL入门笔记(五):另存数据为文件(导出数据)
- 使用conda进行python环境管理
- 不小心删除了ubuntu的内核,进不去系统和Biss,解决办法。
- LaTeX编写Elsevier论文格式-小白记录