方法一:

任务管理器找到程序的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相关推荐

  1. VC中获取窗体句柄的各种方法

    AfxGetMainWnd AfxGetMainWnd获取自身窗体句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与 ...

  2. 纯 Win32 SDK程序为什么每次要获取设备描述表句柄

    做过Win32 API程序的就会发现,要对窗口输出时,每次都要获取设备描述表句柄:都是对同一个窗口输出,设备描述表是一个:为什么每次都要获取设备描述表句柄呢?获取一次行吗? 做一个Win32 API程 ...

  3. 点击回应、关闭确认以及另一种获取设备环境句柄的方法

    API模板:https://www.cnblogs.com/eternalmoonbeam/p/10793080.html 点击回应: switch (message){--case WM_LBUTT ...

  4. 怎么样获取桌面图标句柄,并用VC完成随意移动桌面图标地位置?

    源地址: http://www.qqgb.com/Program/VC/VCJC/Program_251616.html 桌面图标是放在 SysListView32这个列表中,下面得到了它的句柄,如何 ...

  5. 获取窗口的句柄方法总结

     句柄获取方法(获取该窗口的句柄后,即可向该窗口类类发送消息.处理程序): 例如:::PostMessage("句柄", WM_USER_DRAWVIEWPIC_EDS, 0, ...

  6. VC中获取窗口句柄的各种方法

    AfxGetMainWnd AfxGetMainWnd获取自身窗口句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与 ...

  7. vbs获取程序窗体句柄_[VBA][高阶应用][类模块]自绘窗体进度条类cProgressBar.cls

    纯API自绘窗体的进度条类,废话少说,直接上代码 这个进度条类的调用方式: Private Declare Function FindWindow Lib "user32.dll" ...

  8. findwindow函数 vb 获取不到句柄_C/C++实战018:获取目录下的指定文件

    今天要做的是获取UG安装目录中的后处理文件,后处理文件以"*.pui"为后缀.这里我要做的就是批量获取UG安装目录中符合后缀名的文件名称,然后将这些名称提供给UG对话框进行显示. ...

  9. VC 怎么获取windows7系统管理员权限

    lisunlin0 lisunlin0 等级: #12 得分:0回复于: 2010-02-01 23:07:15 在<windows核心编程>第五版里面有提(尽管是关于vista的,但同样 ...

  10. VC 之获取硬盘序列号

    硬盘物理序列号是硬盘的出厂序列号,它是全球都是唯一的,不会随着系统的安装.硬盘的格式化等操作而改变,跟mac地址一样都具有唯一性. 1,第一步:创建设备对象,得到设备句柄,设备为硬盘. { CStri ...

最新文章

  1. 计算机科学领域最高荣誉,骄傲!这位毕业于嘉兴一中的数学家,荣获华人数学领域的最高荣誉...
  2. vector删除第i个元素_[LeetCode] 215. 数组中的第K个最大元素
  3. Linux 服务器基本防护
  4. 系统上线后关键用户的工作建议
  5. shiro框架采取MD5+salt方式加密密码
  6. 我的世界javamod怎么装_「装修细节」除了中央空调外的高颜值装空调大法
  7. 精讲23种设计模式-基于装饰模式~设计多级缓存框架
  8. python语句join_详解Python中的join()函数的用法
  9. input输入框禁止自动补全和下拉提示
  10. 盈建科弹性板6计算_YJK参数设置详细解析
  11. 伍德里奇计量经济学第六章计算机答案,伍德里奇计量经济学导论计算机习题第六章第13题c_6.13...
  12. visio导入阿里云和aws产品模具
  13. 韩立刚计算机网络——第五章:传输层
  14. ubuntu 16.04 插入耳机没有声音
  15. 微信公众平台开发【素材管理】上传临时素材
  16. webpack随笔04-webpack5压缩jscss
  17. MySQL入门笔记(五):另存数据为文件(导出数据)
  18. 使用conda进行python环境管理
  19. 不小心删除了ubuntu的内核,进不去系统和Biss,解决办法。
  20. LaTeX编写Elsevier论文格式-小白记录

热门文章

  1. html小任务,编写表单里的各项元素
  2. ubuntu eclipseJDK
  3. Java编程的逻辑 (70) - 原子变量和CAS
  4. hive学习4(hive的脚本执行)
  5. JSP九大内置对象详解
  6. 块级元素水平,垂直居中的两种方式
  7. 理解VMware资源池
  8. 九宫格图片上传可展示,可删除,可添加功能
  9. 百度云 api java_java实现百度云文字识别接口代码
  10. hibernate java_Hibernate对Java 9的支持