gpt4 book ai didi

windows - 从进程 ID 获取进程可执行文件名称

转载 作者:可可西里 更新时间:2023-11-01 14:41:28 27 4
gpt4 key购买 nike

我目前正在尝试获取我拥有其 pid 的程序列表的名称。

程序以管理员身份运行,但 GetModuleFileNameEx 失败,错误代码为 5。

我使用 OpenProcess(PROCESS_TERMINATE,PROCESS_QUERY_INFORMATION) 打开程序,并且启用了 SE_DEBUG_PRIVILEGE

最佳答案

传递给GetModuleFileNameEx()的进程句柄需要 PROCESS_QUERY_INFORMATIONPROCESS_VM_READ 访问权限。

这对我有用:

HANDLE h = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
FALSE,
6088);
if (0 == h)
{
std::cerr << "OpenProcess() failed: " << GetLastError() << "\n";
}
else
{
char exe_path[2048] = {};

if (GetModuleFileNameEx(h, 0, exe_path, sizeof(exe_path) - 1))
{
std::cout << exe_path << "\n";
}
else
{
std::cerr << "GetModuleFileNameEx() failed: " <<
GetLastError() << "\n";
}
CloseHandle(h);
}

但是,正如其他人所指出的(并且在 GetModuleFileNameEx() 的文档中也有说明),有更安全的方法来获取此信息:

关于windows - 从进程 ID 获取进程可执行文件名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com