Содержание материала

 

Приложение может проверить, если окно отвечает на сообщения путем отправки сообщения WM_NULL с функцией SendMessageTimeout

 

Code:

 // 1. The Documented way

function AppIsResponding(ClassName: string): Boolean;

const

{ Specifies the duration, in milliseconds, of the time-out period }

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 not found!', [ClassName]));

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

if AppIsResponding('OpusApp') then

   { OpusApp is the Class Name of WINWORD }

   ShowMessage('App. responding');

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить