exe파일의 Path 찾기... 난공불락;;;
Windows xp 에서 실행되고 있는 모든 프로세스 exe 에 대해 실행경로를 찾으려고 하는데요...
우선 가장 무난하게 CreateToolhelp32Snapshot의 Module32First 함수를 통해서 ExePath를 얻는 경우
어플리케이션에 대한 ExePath는 얻을 수 있는데, 특정 시스템 프로세스 관련 ExePath는 CreateToolhelp32Snapshot 함수 에러가 발생 되면서 경로얻기가 실패되더군요.
예를 들어 ACAAS.exe, svchost.exe, sqlservr.exe, npkcmsvc.exe 등이 있는데 , 요놈들은 system32폴더에 위치해 있는데
무슨이유인지 모르겠지만 함수호출이 실패되더군요.
첨부파일(TravelingExePath.cpp)
다음으로 GetModuleFileName함수를 통해서 경로를 얻을려고 했지만, GetModuleFileName(GetModuleHandle(me32.szModule), szPath, MAX_PATH);
HModule 값 자체가 정해져 있고, 그로인해서 현재 해당 프로그램(현재 이 코드를 실행시킨 프로그램)을 실행시킨 프로세스의 실행 경로만을 얻어 오더군요.
첨부파일(GetModuleFileName.cpp)
윈도우즈에서 실행되고 있는 모든 프로세스의 실행경로를 얻기 위해 방법이 없는걸까요?
참고로 PDH 쪽도 손을 대봤는데, Path 관련 부분은 보이지 않더군요..ㅠㅠ
첨부 | 파일 크기 |
---|---|
![]() | 3.61 KB |
![]() | 3.4 KB |
winXX api관련 지식이
winXX api관련 지식이 없어서 직접적인 도움은 못 드리겠고
참고만 하세요 혹 boost 사용해도 되면
http://www.boost.org/doc/libs/1_40_0/libs/filesystem/doc/index.htm
boost의 filesystem도 한번 고려해보시는게 어떨까싶어요
댓글 달기