首页 > 后端开发 > C++ > 正文

如何在 C 中按名称获取进程句柄?

Barbara Streisand
发布: 2024-11-21 16:01:10
原创
562 人浏览过

How Can I Get a Process Handle by Name in C  ?

在 C 中通过名称获取进程句柄

根据进程名称获取进程句柄,例如“example.exe” ,”我们可以在 C 中使用以下方法。

第一步是使用以下命令创建所有正在运行的进程的快照CreateToolhelp32Snapshot 函数:

HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
登录后复制

接下来,我们需要遍历快照中的进程来查找具有指定名称的进程:

PROCESSENTRY32 entry;
entry.dwSize = sizeof(PROCESSENTRY32);

if (Process32First(snapshot, &entry) == TRUE) {
  while (Process32Next(snapshot, &entry) == TRUE) {
    if (stricmp(entry.szExeFile, "target.exe") == 0) {
      // Found the process
登录后复制

有了进程信息,我们就可以可以使用 OpenProcess 函数获取其句柄:

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
登录后复制

注意:要使用 PROCESS_ALL_ACCESS 权限,您可能需要启用调试权限,如问题答案中提供的替代代码片段所示。

EnableDebugPriv();
登录后复制

一旦获得进程句柄,您就可以对进程执行各种操作它,包括使用 TerminateProcess 终止进程。

TerminateProcess(hProcess, 0);
登录后复制

以上是如何在 C 中按名称获取进程句柄?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板