![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прошу пример как на Делфи отправить сообщение CreateMAilSlot [D5]
kserg@ukr.net © (2002-05-28 10:35:00)Привет
Есть необходимость отправит из моей проги сообщение юзерам в сети. Как это сделать через NetMessageBufferSend я нашел пример и смог им воспользоваться, но у меня есть юзеры у котр. стоит Win98, соот-но NetMessageBufferSend здесь не катит.
Народ, дайте пример как из делфей корректно отправить сообщение через CreateMAilSlot ?
А то я с API мало работал и его синтаксис не совсем понятен.
Может кто предложит другое универсальное решение (так чтобы можно было посыть сообщения и с NT и 98)
Спасибо.
LazyCat (2002-05-28 16:48:00) [1]Можно всему домену послать, тогда вместо "имя_компа" надо "*" ставить. Должно быть можно, когда копался с этим компонентом пару раз было, что сообщения приходили не только на компутер юзера, но и на все компутеры где он залогинился. А почему это получилось непомню. :(
kserg@ukr.net (2002-05-28 16:29:00) [2]спасибо за помощь.
и еще вопросик: можно сообщение кинуть не на имя_компа, а на имя_юзера ?
LazyCat (2002-05-28 15:38:00) [3]А, было у меня такое. Ругалось только под NT при вызове CharToOEM. Попробуй заменить в модуле mdMailSlot функцию SendToWinpopup на эту:
Function SendToWinpopup(Server, Reciever, Sender, Msg : String) : Boolean;
var
m,m1 : PChar;
l : integer;
Begin
l := Length(Server)+1;
getmem(m,l);
getmem(m1,l);
StrCopy(m, PChar(Server));
CharToOEM(m,m1);
Server := String(m1);
FreeMem(m,l);
FreeMem(m1,l);
getmem(m,Length(Sender)+1);
getmem(m1,Length(Sender)+1);
StrCopy(m, PChar(Sender));
CharToOEM(m,m1);
Sender := String(m1);
FreeMem(m,Length(Sender)+1);
FreeMem(m1,Length(Sender)+1);
getmem(m,Length(Reciever)+1);
getmem(m1,Length(Reciever)+1);
StrCopy(m, PChar(Reciever));
CharToOEM(m,m1);
Reciever := String(m1);
FreeMem(m,Length(Reciever)+1);
FreeMem(m1,Length(Reciever)+1);
getmem(m,Length(Msg)+1);
getmem(m1,Length(Msg)+1);
StrCopy(m, PChar(Msg));
CharToOEM(m,m1);
msg := String(m1);
FreeMem(m,Length(Msg)+1);
FreeMem(m1,Length(Msg)+1);
Result := SendToMailSlot(Server, wpSlot, Sender+#0+Reciever+#0+Msg);
end;
А на счет этой "\\.\mailslot\data_base"строчки я не уверен, если не ошибаюсь там должно быть только имя компьютера на который отправляешь сообщение.
kserg@ukr.net (2002-05-28 14:35:00) [4]подскажи в чем дело.
mdWinPopup1.Send("\\.\mailslot\data_base","kse","kse","177")
эта строка генерит исключение типа Access Violation... in modele user32.dll
LazyCat (2002-05-28 13:01:00) [5]На OnMessage вешай свой оброботчик.
А посылать примерно так:
mdWinPopup1.Send(Komu,OtKogo,OtKogo,memo1.Text);
kserg@ukr.net (2002-05-28 12:38:00) [6]>LazyCat © (28.05.02 12:13)
у компанента куча функций и не могу сходу понять,
какими можно отправить/получить сообщение,
LazyCat (2002-05-28 12:13:00) [7]В component->install component открывай mdMailSlot.pas (так кажеца называеца), и жми инсталл. Должно все заработать. У меня во всяком случае проблем не было.
kserg@ukr.net (2002-05-28 11:39:00) [8]>LazyCat © (28.05.02 11:06)
Cпасибо, дарагой :-)
уже скачал, но возникли сложности: в архиве PAS под D2/D3
а как перекомпилить его под D5?
(сам я еще мало знаю D)
Кстати, на torry.ru выставлена устаревшая вер.1,14
а на родной странице http://www.djernaes.dk/martin
выставлена вер.1,15 - в read_me написало, что удалена ошибка утечки памяти.
LazyCat (2002-05-28 11:06:00) [9]На torry.ru поищи компонент mdWinPopUp. Он нормально работает и на NT и на 9х.