Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отправка/получение 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" - прога так называется...

Вообщем реализация на делфи так и остается не познанной, т.к. эта прога написанна не на делфях...


Наверх

Титульная страница Поиск, карта сайта Написать письмо