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