지금 프로그램 업데이트 런처를 만들고있는데요;
우선 프로그램이 윈도우폼으로 생성되는게아니라 (ctrl alt del)누르면 [응용프로그램] 말고 [프로세스]있잖아요. 여기에만 나타나요. 프로그램이름이
dzb.exe
에요. 그래서 우선 실행 돼 있는 프로그램을 종료시키기 위해서
//HWND HWnd = FindWindow(NULL, "dzb.exe");
HWND HWnd = FindWindow("dzb.exe", NULL);
if(HWnd)
{
DWORD ProcessId;
GetWindowThreadProcessId(HWnd, &ProcessId); // hWnd로 프로세스 ID를 얻음..
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessId);
if(hProcess)
{
TerminateProcess(hProcess,0);//또는 ExitProcess 사용해서 죽임..
}
cout << "찾음 " << IntToStr(ProcessId);
}else{
cout << "못찾음";
}
소스 처음에보면 앞에다가도 검색해보고 뒤에다가도 검색해봤거든요 근데 안되더라고요.
HWND HWnd = FindWindow(NULL, "dzb"); 이렇게하니까 explorer pid가 잡히더라고요;
HWND HWnd = FindWindow(NULL, "dzb.exe");
HWND HWnd = FindWindow("dzb", NULL);
HWND HWnd = FindWindow("dzb.exe", NULL); // 이렇게들 하면 안잡히구요.
제가 쓰는 방법이 잘못된건지 아니면 다른 함수가 있는건지좀 가르쳐주세요;;
|