Форум: "Сети";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
ВнизПрошу пример как на Делфи отправить сообщение CreateMAilSlot Найти похожие ветки
← →
kserg@ukr.net (2002-05-28 10:35) [0]Привет
Есть необходимость отправит из моей проги сообщение юзерам в сети. Как это сделать через NetMessageBufferSend я нашел пример и смог им воспользоваться, но у меня есть юзеры у котр. стоит Win98, соот-но NetMessageBufferSend здесь не катит.
Народ, дайте пример как из делфей корректно отправить сообщение через CreateMAilSlot ?
А то я с API мало работал и его синтаксис не совсем понятен.
Может кто предложит другое универсальное решение (так чтобы можно было посыть сообщения и с NT и 98)
Спасибо.
← →
LazyCat (2002-05-28 11:06) [1]На torry.ru поищи компонент mdWinPopUp. Он нормально работает и на NT и на 9х.
← →
kserg@ukr.net (2002-05-28 11:39) [2]>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 12:13) [3]В component->install component открывай mdMailSlot.pas (так кажеца называеца), и жми инсталл. Должно все заработать. У меня во всяком случае проблем не было.
← →
kserg@ukr.net (2002-05-28 12:38) [4]>LazyCat © (28.05.02 12:13)
у компанента куча функций и не могу сходу понять,
какими можно отправить/получить сообщение,
← →
LazyCat (2002-05-28 13:01) [5]На OnMessage вешай свой оброботчик.
А посылать примерно так:
mdWinPopup1.Send(Komu,OtKogo,OtKogo,memo1.Text);
← →
kserg@ukr.net (2002-05-28 14:35) [6]подскажи в чем дело.
mdWinPopup1.Send("\\.\mailslot\data_base","kse","kse","177")
эта строка генерит исключение типа Access Violation... in modele user32.dll
← →
LazyCat (2002-05-28 15:38) [7]А, было у меня такое. Ругалось только под 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 16:29) [8]спасибо за помощь.
и еще вопросик: можно сообщение кинуть не на имя_компа, а на имя_юзера ?
← →
LazyCat (2002-05-28 16:48) [9]Можно всему домену послать, тогда вместо "имя_компа" надо "*" ставить. Должно быть можно, когда копался с этим компонентом пару раз было, что сообщения приходили не только на компутер юзера, но и на все компутеры где он залогинился. А почему это получилось непомню. :(
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c