Как послать сообщение всем окнам Windows?

Материал из DRKB

Как послать сообщение всем окнам Windows?[править | править код]

var
  FM_FINDPHOTO: Integer;

initialization

// Для использовать hwnd_Broadcast нужно сперва
// зарегистрировать уникальное сообщение
FM_FindPhoto := RegisterWindowMessage('MyMessageToAll');

// Чтобы поймать это сообщение в другом приложении
//(приемнике) нужно перекрыть DefaultHandler
procedure TForm1.DefaultHandler(var Message);
begin
  with TMessage(Message) do
  begin
    if Msg = Fm_FindPhoto then
      MyHandler(WPARAM, LPARAM)
    else
      Inherited DefaultHandler(Message);
  end;
end;

// А теперь можно
SendMessage(HWND_BROADCAST, FM_FINDPHOTO, 0, 0);


Кстати, для посылки сообщения дочерним контролам некоего контрола можно использовать метод Broadcast.


Author: Andrey Burov (2:463/238.19)
Author: StayAtHome
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02317