Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];

Вниз

NetMassageBufferSend не работает   Найти похожие ветки 

 
ValeraVV   (2001-11-16 10:41) [0]

Пытаюсь отослать сообщение с помощью NetMessageBufferSend (servername=nil,msgname=Имя_машины_widechar,fromname=nil,buf=Сообщение_widechar,buflen=SizeOf(buf)*2) получаю ошибку с кодом 123?
Как заставить ее работать?
Если я хочу отправть сообщение на другую машину, где указывать ее имя, в servername или в msgname?
NetMessageNameEnum (server=nil) возвращает всего 3 записи:
Имя_машины_widechar
Имя_машины$_widechar
Имя_пользователя_widechar (меня)
контроллер домена в качестве server задать не могу (не администратор)


 
USAtyj   (2001-11-16 12:10) [1]

Вот работающий кусок. Может поможет.

...

var
Form1: TForm1;
NetMessageBufferSend: function (ServerName,
MsgName,FromName:PWideChar;
Buf:Pointer;BufLen:DWord):word; stdcall;

...

function TThreadSendMessage.NetSend(Host,Msg: String):boolean;
var
HLib:HModule;
PWCHost,PWCMsg: PWideChar;
Error:word;
begin
@NetMessageBufferSend:=nil;
HLib:=LoadLibrary("netapi32.dll");
if HLib<>0 then
begin
@NetMessageBufferSend:=GetProcAddress(HLib,"NetMessageBufferSend");
if @NetMessageBufferSend<>nil then
begin
try
Error:=1;
GetMem(PWCHost, 2*Length(Host)+2);
GetMem(PWCMsg, 2*Length(Msg)+2);
StringToWideChar(Host, PWCHost, Length(Host)+2);
StringToWideChar(Msg, PWCMsg, Length(Msg)+2);
Error:=NetMessageBufferSend(nil, PWCHost,nil,PWCMsg,2*Length(Msg));
finally
FreeMem(PWCHost);
FreeMem(PWCMsg);
Result := (Error=0);
end;
end;
FreeLibrary(HLib);
end;
end;

На авторство не претендую


 
Tosov   (2001-11-16 16:31) [2]

(тоже?) Рабочий пример (чуть покороче предидущего)
http://delphi.xonix.ru/faq/lan/netsend01.shtml


 
ValeraVV   (2001-12-19 11:00) [3]

Все заработало
В догонку:
Функция NetMessageBufferSend очень сильно тормозит, команда net send работает гораздо быстрее и не импортирует функцию NetMessageBufferSend (net.exe у меня версии 5.0.2160.1 (однако есть файл net1.exe версии 5.0.2179.1 - он ее импортирует (может троян?)))
Вопрос: как мелкософту удается послать сообщение быстрее меня?



 
Aleksandr   (2001-12-20 14:01) [4]

2ValeraVV
Спасибо, только не понял, зачем ресурс загружать, если можно просто в interface упомянуть:

function NetMessageBufferSend ( servername : PWideChar; msgname : PWideChar; fromname : PWideChar; buf : PByte; buflen : DWORD ): WORD; stdcall; external "netapi32.dll" name "NetMessageBufferSend";

Или это приведет к сложностям?


 
Aleksandr   (2001-12-20 14:10) [5]

Спасибо - это к тому, что меня тот же вопрос мучает...
Лично у меня ни один из этих примеров не пашет... Просто нет никаких сообщений и все... Результат=0...


 
ValeraVV   (2001-12-20 15:12) [6]

Загружают, потому-что если netapi32.dll не существует (есть ли она в Win95/98?, живых копий у меня нет), то твоя прога не запустится, а так хоть обработать ошибку можно и "интерфейсно-дружественно" об этом сообщить.


 
Filat   (2001-12-29 13:05) [7]

А как разослать сообщение всем юзерам в сети, а не конкретно одному. Потому как если юзеров >100, то устанешь каждому ваять, а так бы одним махом, типа, через полчаса выключить компы. :))


 
Tosov   (2001-12-29 16:13) [8]

net send * Вырубай машину!!! (вместо имени компа - * )


 
USAtyj   (2001-12-29 16:19) [9]

Или же:
net send ИМЯ_ДОМЕНА Вырубай машину!!!


 
Ruff-Fish   (2001-12-30 19:57) [10]

Предыдущее верно, если на машине реципиента тоже стоит NT/2K/XP...



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
3-57292
ASM
2002-02-18 22:52
2002.03.18
Народ хэлп нужен! Как в ComboBox е сделать:


3-57319
Оксана
2002-02-18 10:56
2002.03.18
Нетипизированные файлы


14-57512
chernoruk
2002-02-04 18:35
2002.03.18
Connect to the Internet


1-57454
Григорий Ситнин
2002-02-27 15:03
2002.03.18
Алгоритмы сравнения файлов...


3-57321
AndrewK
2002-02-19 17:48
2002.03.18
Как составить запрос





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский