Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
14-24196
SDK
2002-07-13 06:22
2002.08.08
SDK


6-24152
kserg@ukr.net
2002-05-28 10:35
2002.08.08
Прошу пример как на Делфи отправить сообщение CreateMAilSlot


14-24202
Snake bite
2002-07-13 19:50
2002.08.08
С добрым временем суток


1-24108
Soler
2002-07-26 17:30
2002.08.08
Как создать Label


1-24038
zetta
2002-07-25 14:51
2002.08.08
а можно ли так:





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский