델파이5, Win98 환경입니다.
procedure TFmDown.Timer1Timer(Sender: TObject);
var hHandle : HWND;
begin
Application.ProcessMessages;
hHandle := FindWindow('Traffic System', nil);
//'Traffic System은 메인폼 타이틀명,Class명은 TMain 입니다
if hHandle <> 0 then begin
PostMessage(hHandle, WM_CLOSE, 0, 0);
end;
if hHandle = 0 then begin
BitBtn1.Enabled := True;
Timer1.Enabled := False;
end;
end;
위처럼 하면 BitBtn이 True로 바뀌어 집니다.
그런데 Ctrl+Art+Delete 로 프로세스를 보면 해당 프로그램이 'Traffic'이란 이름으로 살아 있습니다. 물론 hHandle := FindWindow('Traffic', nil); 으로 해도 살아 있습니다.
시스템 메모리 에서도 삭제(Close) 하려고 하는데 위 소스로 왜 안될까요?