Добрый день.
Имею в наличии ProcessID работающего процесса, как получить путь и имя файла процесса?
Здравствуйте, Аноним, Вы писали:
А>Добрый день.
А>Имею в наличии ProcessID работающего процесса, как получить путь и имя файла процесса?
string ProcessName(int pid){
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
CHAR lpFilename[MAX_PATH];
if(hProc){
GetModuleFileNameExA(hProc,NULL,lpFilename,MAX_PATH);
}
return lpFilename;
}
Здравствуйте, Аноним, Вы писали:
А>Добрый день.
А>Имею в наличии ProcessID работающего процесса, как получить путь и имя файла процесса?
string ProcessName(int pid){
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
CHAR lpFilename[MAX_PATH];
if(hProc){
GetModuleFileNameExA(hProc,NULL,lpFilename,MAX_PATH);
}
CloseHandle(hProc);
return lpFilename;
}
Есть такая функция — GetModuleFileNameEx. Она решает задачу, но требует HANDLE. Наверное, он тоже есть — иначе как ID получен?
Здравствуйте, synthetix, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>Добрый день.
А>>Имею в наличии ProcessID работающего процесса, как получить путь и имя файла процесса?
S>S>string ProcessName(int pid){
S> HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
S> CHAR lpFilename[MAX_PATH];
S> if(hProc){
S> GetModuleFileNameExA(hProc,NULL,lpFilename,MAX_PATH);
S> }
S> CloseHandle(hProc);
S> return lpFilename;
S>}
S>
Разве необходимо запрашивать PROCESS_ALL_ACCESS для GetModuleFileNameEx?
Разве CloseHandle должен быть вызван при неудачном завершении OpenProcess?
Где протоколирование ошибок?
Sloppy programming example.
Для политкорректности добавим сюда ещё это:
GetProcessImageFileName()
QueryFullProcessImageName()