Programming/WINAPI
[WinAPI/C++] PID로 프로세스명 조회하는 방법 ( QueryFullProcessImageName )
smok95
2020. 6. 24. 07:58
반응형
프로세스ID로 프로세스명(경로 포함) 확인하는 방법입니다.
#include <Windows.h>
#include <string>
#include <iostream>
std::string GetProcessName(const DWORD pid) {
std::string name = "unknown";
DWORD error=0;
if(HANDLE hProc = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid)) {
char buf[512]={0,};
DWORD bufLen = sizeof(buf);
QueryFullProcessImageName(hProc, 0, buf, &bufLen);
CloseHandle(hProc);
name = buf;
}
return name;
}
int main() {
DWORD pid = 확인할 프로세스ID;
std::string name = GetProcessName(pid);
std::cout << "process name=" << name << std::endl;
return 0;
}
Windows Vista 이상 부터 사용할 수 있으며 UAC 프로세스 무결성 수준이 높더라도 확인이 가능한 코드입니다.
단, 시스템 프로세스는 확인이 안됩니다.
경로가 포함된 프로세스명이 리턴되기 때문에 경로가 필요없는 경우에는 잘라서 사용하시면 됩니다.
반응형