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도 한번 고려해보시는게 어떨까싶어요
댓글 달기