안녕 하세요?
BacTeria 박종민 입니다.
현재 떠있는 프로그램을 모두 종료하는 프로그램 구현하기는 그리 어렵진 않습니다.
우선 다른 프로그램을 종료 하려면 닫으려는 윈도우의 핸들을 얻어내야 합니다.
일일이 창들을 순회하여 다 뒤져 얻는 방법과 콜백 함수로 한방에 얻어오는
방법이 있습니다.
우선 일일히 뒤져서 찾는 방법...
------------------------------------------------------------------------
var
hwnd: THandle;
begin
hwnd := GetWindow(GetDeskTopWindow, GW_CHILD);
while hwnd <> 0 do
begin
// 요기에서 원하는 처리를 해 줍니다. 창을 닫던지...
// hwnd 가 얻어온 핸들 이거든요~
hwnd := GetWindow(hwnd, GW_HWNDNEXT);
end;
end;
------------------------------------------------------------------------
담으로 콜백 함수로 한방에 처리하기...
------------------------------------------------------------------------
function CallBack(PHandle: HWND; lparam: LPARAM): Boolean; stdcall;
begin
if IsWindow(PHandle) and IsWindowVisible(PHandle) then
begin
// 요기에서 원하는 처리를 해줍니다.
// CloseWindow(PHandle); 이런거 써도 되구요...
end;
CallBack := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@CallBack, 0);
end;
------------------------------------------------------------------------
자세한건 도움말이 젤루 확실하지 않을까요?
그리구요. 윈도우 종료하는 방법은요. ExitWindowsEx 라는 API 함수로 해결합니다.
이 함수는 그냥 도움말을 참고 하세요. 왜냐면 무지 쉽기 때문에~ ^.-
이만... 박종민...
|