2016-07-19 45 views
0

我想獲取進程的EXE路徑。我可以做到這一點,但對於提升的流程,我無法致電OpenProcess()(錯誤是「訪問被拒絕」)。確定一個進程的EXE路徑,包括高架進程

是否可以確定任何進程的exe路徑而不需要提升特權?也許我不需要打開/訪問過程來確定這一點?

以下OpenProcess失敗高架進程:

HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processId); 

... 
QueryFullProcessImageName(hProcess, 0, exePath, &len) 
+3

嘗試刪除'PROCESS_VM_READ'訪問指定符。您也可以使用'PROCESS_QUERY_LIMITED_INFORMATION'而不是'PROCESS_QUERY_INFORMATION' – Ari0nhh

+0

可能的重複:http://stackoverflow.com/questions/8475009/get-a-process-executable-name-from-process-id –

+1

@ Ari0nhh謝謝你的解決方案。如果你做出答案,我可以接受它。 –

回答

3

刪除PROCESS_VM_READ訪問specificator,由於不需要用於QueryFullProcessImageName函數它。該文檔描述了所需的過程句柄訪問權限如下:

該過程的句柄。此句柄必須使用PROCESS_QUERY_INFORMATION或PROCESS_QUERY_LIMITED_INFORMATION訪問權限創建。