imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 21.02.2005, 19:26     # 1
steelik
Member
 
Аватар для steelik
 
Регистрация: 30.09.2002
Сообщения: 320

steelik Путь к славе только начался
широковещательное сообщение (delphi)

Как послать широковещательное сообщение BROADCAST ? Знаю, что нужно юзать ф-ю SendMessage, но из-за малоопытности чтоли, не догоняю. Пример если можно!
steelik вне форума  
Старый 21.02.2005, 20:23     # 2
chesnok
Member
 
Аватар для chesnok
 
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206

chesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форумеchesnok Популярный человек на этом форуме
C++ syntax
Код:
LRESULT lMsgResult = SendMessage(HWND_BROADCAST, WM_YOURMESSAGE, your_wParam, your_lParam)
Delphi syntax
Код:
var
a : Integer;
<...>
a := SendMessage(HWND_BROADCAST,...);
SendMessage не возвращает управления до тех пор, пока не получит от окна ответа на месседж, так что в нек. случаях имеет смысл использовать аналогичную ф-ю PostMessage, возвращающую управление сразу.
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you?
<bob> why not? people use windows as one.
chesnok вне форума  
Старый 21.02.2005, 20:54     # 3
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
Можно так, наверное:
Цитата:
// 1. Определение типа структуры вашего сообщения, может быть следующим:
type
TWMMYMessage = record
Msg: Cardinal; // ( идентификационный номер сообщения -- ID )
Handle: HWND; // ( заголовок (wParam, Handle) отправителя)
Info: Longint; // ( это lParam, указатель на наши данные)
Result: Longint;
end;
// 2. Теперь нужно перекрыть DefaultHandler и добавить
// новый метод для обработки вашего сообщения, например так:
TForm1 = class(TForm)
...public
{ Public declarations }
...procedure DefaultHandler(var Message); override;
procedure WMMYMessage(var Msg: TWMMYMessage);
...end;
// 3. Объявление переменной сообщения :
var
WM_OURMESSAGE: DWORD;
// 4. Реализация метода заголовка DefaultHandler и сообщения:
procedure TForm1.DefaultHandler(var Message);
var
ee: TWMMYMessage;
begin
with TMessage(Message) do
begin
if (Msg = WM_OURMESSAGE) then
begin
ee.Msg := Msg;
ee.Handle := wParam;
ee.Info := lParam;
// Checking if this message is not from us
if ee.Handle <> Handle then
WMMYMessage(ee);
end
else
inherited DefaultHandler(Message);
end;
end;
procedure TForm1.WMMYMessage(var Msg: TWMMYMessage);
begin
label1.Caption := Format('Our another form handle :%d', [Msg.Handle]);
Label2.Caption := Format('Our another form top :%d', [Msg.Info]);
end;
// 5. Регистрация широковещательного сообщения (HWND_BROADCAST)
initialization
WM_OURMESSAGE := RegisterWindowMessage('Our broadcast message');
// 6. Для отсылки сообщения:
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(HWND_BROADCAST, WM_OURMESSAGE, Handle, Top);
end;
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 21.02.2005, 22:01     # 4
steelik
Member
 
Аватар для steelik
 
Регистрация: 30.09.2002
Сообщения: 320

steelik Путь к славе только начался
ОК, спасибо! А вот то что в Windows имеется сервис такой Messager ? Он слушает сообщения по BROADCAST или это из другой оперы?
steelik вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 23:52.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.