[英]C++ Windows - How to get process path from its PID (error)
我想使用 pid 來獲取進程的完整路徑。
#include <psapi.h>
HANDLE processHandle = NULL;
TCHAR filename[MAX_PATH];
processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, nPID);
if (processHandle != NULL)
{
if (GetModuleFileNameEx(processHandle, NULL, filename, MAX_PATH) == 0)
{
//fail to get module file name
}
else
{
//module file name : filename
}
CloseHandle(processHandle);
}
else
{
//fail to open process
}
這是使用pid獲取進程路徑的代碼。
但是,當我執行它時,出現以下錯誤。
(我使用的是visual c ++ 6.0。)
Linking...
Process01Dlg.obj : error LNK2001: unresolved external symbol _GetModuleFileNameExA@16
Debug/Process01.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
以上所有方法都導致了錯誤。
這是版本的問題嗎?
請回答。 謝謝 :)
您似乎忘記將您的產品與psapi.lib
鏈接。 將其添加到項目依賴項中。
不確定它是否可以在 VC6.0 中工作。
但是 MSDN 建議使用其他函數來檢索進程名稱:
要檢索遠程進程的主要可執行模塊的名稱,請使用GetProcessImageFileName或QueryFullProcessImageName函數。 這比使用 NULL 模塊句柄調用GetModuleFileNameEx函數更有效、更可靠。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.