首页  >  文章  >  后端开发  >  如何在 C 中按名称获取进程句柄?

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

Barbara Streisand
Barbara Streisand原创
2024-11-21 16:01:10579浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn