프로그래밍/C++
[C+]현재 실행중인 모든 Window 이름 및 경로 가져오기
건우아빠유리남편
2011. 7. 12. 19:03
반응형
#include #pragma comment(lib, "PSAPI.LIB")
void CtestFindWindowTDoc::FindRunningPgmNameAndPath() { //현재 실행되고 있는 프로그램들의 경로를 구한다. HWND h_wnd = FindWindowEx(NULL,NULL, NULL, NULL); CString strTitle; CString strAppPath; //CFileStatus status; char szTitle[MAX_PATH]; char szPath[MAX_PATH]; while(h_wnd != NULL) { if(IsWindow(h_wnd) && IsWindowVisible((h_wnd))) { GetWindowText(h_wnd, szTitle, MAX_PATH); DWORD dwProcessId; GetWindowThreadProcessId(h_wnd, &dwProcessId); HANDLE hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwProcessId); //GetProcessImageFileName(hHandle, szPath, MAX_PATH); GetModuleFileNameEx(hHandle, NULL, szPath, MAX_PATH); TRACE("[이름] %s\n", szTitle ); TRACE("[경로] %s\n\n", szPath ); //HINSTANCE hInstance = (HINSTANCE)GetWindowLong(h_wnd, 0); strTitle = szTitle; if( 0 < strTitle.Find("Site") ) //실행중인 Window의 캡션에 Site가 있으면 파일정보를 읽고 종료 { DWORD dwProcessId; GetWindowThreadProcessId(h_wnd, &dwProcessId); HANDLE hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwProcessId); //GetProcessImageFileName(hHandle, szPath, MAX_PATH); GetModuleFileNameEx(hHandle, NULL, szPath, MAX_PATH); } } h_wnd = FindWindowEx(NULL, h_wnd, NULL, NULL); } }
반응형