Tôi đang cố lấy tên quy trình từ pid của nó. Người dùng đang chạy với tư cách Quản trị viên, đã bật UAC, không được nâng lên.Cách lấy tên tệp quy trình từ pid, nếu OpenProcess() không thành công với ACCESS_DENIED?
Một số quy trình hệ thống, như services.exe
, thiết lập bảo mật theo cách như vậy mà OpenProcess(PROCESS_QUERY_INFORMATION ...
không thành công với ERROR_ACCESS_DENIED
. Cùng một kết quả với quyền truy cập PROCESS_QUERY_LIMITED_INFORMATION
. Tuy nhiên, tôi có thể thấy rằng Process Explorercó thể ít nhất là liệt kê tất cả các quy trình này, cùng với tên tệp và pid của chúng (khi chạy với tư cách là Quản trị viên không nâng cao).
Câu hỏi của tôi là, làm cách nào tôi có thể làm như vậy (lấy tên tệp từ pid), vì quản trị viên không nâng cao không thể theo dõi tuyến đường OpenProcess() + GetProcessImageFileName() thông thường?
Cảm ơn Jim - đó là gợi ý tuyệt vời. Nếu bất kỳ ai cần ví dụ, đây là [MSDN one] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686701%28v=vs.85%29.aspx) – baderman