Saturday, December 30, 2006

function AppIsResponding(ClassName : string) : boolean;
const
TIMEOUT = 50;

var
Res: DWORD;
h: HWND;
begin
h := FindWindow(PChar(ClassName), nil);
if h <> 0 then
result := SendMessageTimeout(H, WM_NULL, 0, 0, SMTO_NORMAL or SMTO_ABORTIFHUNG, TIMEOUT, Res) <> 0
else
ShowMessage(Format('%s nenalezeno!',[ClassName]));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if AppIsResponding('Notepad') then ShowMessage('Aplikace odpovídá.');
end;
V příkladu je vidět použití pro Poznámkový blok. V těle samotné funkce je konstanta, které určuje časový interval čekání na odezvu v milisekundách.