![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отправка/получение NT-шных сообщений из Win9x [D6, Win95/98]
Мегабайт © (2002-12-16 09:51:00)Уважаемые мастера! Наверное, многие встречались с программами-надстройками над NT-шной службой сообщений (WinPopup, Sender, Network Assistant и т.д.). Как они работают в NT-шных системах понятно, у NT есть API-шные функции для отправки сообщений. Но меня интересует как они отправляют и принимают NT-шные сообщения под Win9x? Неужели ручками эмулируют NT? Кто знает, сообщите пожалуйста ссылки на статьи/компоненты/куски кода и т.д.
cgbs (2003-02-08 13:57:00) [1]а в каком модуле описано NetMessageBufferSend ?
GobliNGuT (2003-01-27 22:07:00) [2]Ловите
procedure TForm1.Button1Click(Sender: TObject);
var
MSopen:THandle;
ZHERTVA,USER,COMP:string;
Data:string;
Len:DWORD;
begin
ZHERTVA:=Form1.Edit1.Text;
USER:=Form1.Edit2.Text;
COMP:=Form1.Edit3.Text;
Data:=Form1.Memo1.Text;
CharToOEM(PChar(USER),PChar(USER));
CharToOEM(PChar(COMP),PChar(COMP));
CharToOem(Pchar(Data),Pchar(Data));
Data:=USER+#0+COMP+#0+Data;
Len:=Length(Data);
MSopen:=CreateFile(pchar("\\"+ZHERTVA+"\mailslot\messngr"),
GENERIC_WRITE,FILE_SHARE_READ,NIL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if MSopen<>INVALID_HANDLE_VALUE then
begin
WriteFile(MSopen,Pointer(PChar(Data))^,Len,Len,nil);
end;
closeHandle(MSopen);
end;
ZHERTVA - Имя компа которому идет посылка
USER - Имя компа которое будет указано при получении (для кого)
COMP - Твой комп (от кого - указоно будет при получении)
Если вместо ZHERTVA указать имя рабочей группы - то прийдет ко всем в группе.
Data - строка с сообщением
Я думаю этого кода будет достаточно. На крайняк могу выслать код.
NewGuest (2003-01-24 16:47:00) [3]Никто ничего не придумал....
NewGuest (2003-01-14 20:30:00) [4]а кстати вопрос то ещё интресней!
Вопрос: посылка сообщения из 9х на 2000, XP да причём не на конкрентный, а на все...
NewGuest (2003-01-13 16:41:00) [5]могу сказать точно, что вариант с NetMessageBufferSend и туда и сюда нормально посылает...(из 98 в NT и наоборот) вооот...
Это проверенно... этим у нас по сетке болтают.
Я не могу понять к какому компаненту относится данная процедура... помню где-то встречал.
Rouse_ (2003-01-12 21:25:00) [6]Network Assistant использовала майлслоты для отправки из НТ в 98. В последней версии эта возможность почемуто отключена. Вот гораздо интереснее решить проблему отправки из 98 в НТ. Я сейчас как раз над ней думаю.
Желаю успехов
NewGuest (2003-01-12 21:02:00) [7]Это точно, что используются mailslot... в статье про это хорошо всё расписано.
А есть ещё один боле реальный в Делфях способ NetMessageBufferSend...
GobliNGuT (2003-01-10 01:45:00) [8]Не уверен в правильности, но есть подозрение что используются mail-slot"ы попробуй проработать это направлении...
NewGuest (2003-01-09 10:12:00) [9]Клевый вопрос... Кстати зря никто не пытается ответить...
Вообщем на эту тему есть статья на RSDN.ru в разделе файлы "Winpopdown" - прога так называется...
Вообщем реализация на делфи так и остается не познанной, т.к. эта прога написанна не на делфях...