![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение Broadcast сообщений
Burmistroff © (2002-06-15 15:24:00)Добрый день. Подскажите пожалуйста, как правильно принимать сообщения HWND_BROADCAST?
Я делаю так:
...
protected
procedure DefaultHandler(var Message); override;
...
var
WM_MY: DWORD;
...
function mApp(var Message: TMessage): integer;
begin
windows.Beep(500, 500);
message.Result:=3;
end;
procedure TForm1.DefaultHandler(var Message);
begin
with TMessage(Message) do
begin
if msg=WM_MY then mApp(TMessage(Message)) else
inherited DefaultHandler(Message);
end;
end;
initialization
WM_MY:=RegisterWindowMessage("MReady");
end.
т.е. по идее, результат должен быть = 3, но он почему-то всегда = 1
вот как я отправляю сообщение (из другой программы):
procedure TForm1.Button1Click(Sender: TObject);
var
wm_my, i: integer;
begin
wm_my:=RegisterWindowMessage("MReady");
i:=SendMessage(HWND_BROADCAST, WM_MY, 77, 2); //i всегда равно 1
messagebox(0, pchar(inttostr(i)), "Capt", MB_YESNO);
end;
Так как же все таки правильно принять и обработать широковещательное сообщение?
Alexander Vorobyov (2002-06-17 10:36:00) [1]Попробуй использовать
ReplyMessage(3)для возврата значения 3.