|
아래 내용은 다른 분의 답변을 가져 온 것입니다. 그런데 무슨 말인지... 완젼히 낫놓고 기억자도 모르는
것 같아 답답하군여....
제가 듣고 싶은 답변은 아래 함수를 어떻게 실행해야 될지 모르겟습니다. 즉, 제가 KillHandle() 를
호출하는건지 아니면 어떻게 자동으로 호출이 되는지....
제가 잘 이해를 하지 못해서 질문이 애메하군여..... 제가 하려는건 Os에서 윈도우를 종료시면 프로그램
을 종료 시키기 위해서 입니다. 답변 부탁드립니다.
///////////////////////////////////////////////////////////////////////////////////////////////////
98에서는 간단히 죽이면 되지만, 2000에서는 프로세스를 얻은 다음 처리를 해야 하기 때문에 조금 복잡합니다. 아래 소스로 98, 2000에서 모두 사용하실 수 있으실 것 같습니다.
아래 소스는 "프로그램 1", "프로그램 2" 를 모두 죽이는 소스입니다.
void __fastcall TMain::KillHandle(bool blRoot)
{
HWND hdHandle;
HANDLE hdProcess;
DWORD dwPID;
SpeedKeyOff();
hdHandle = FindWindow(NULL, "프로그램 1");
if(!hdHandle) hdHandle = FindWindow(NULL, "프로그램 2");
if(hdHandle) {
GetWindowThreadProcessId(hdHandle, &dwPID);
if(dwPID) {
hdProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID);
TerminateProcess(hdProcess, -1);
}
KillHandle(false);
}
return;
}
|