Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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...




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




Наверх





Память: 0.73 MB
Время: 0.014 c
1-57459           Nuce                  2002-03-04 02:37  2002.03.18  
Dhtmledit


4-57551           gluka                 2002-01-16 06:22  2002.03.18  
LogonUser,.......CreateProcessAsUser ??? Est problems...


3-57305           Chak                  2002-02-19 12:26  2002.03.18  
Почему возникает ---- error creating cursor handle-----?


1-57438           BVS                   2002-03-03 14:29  2002.03.18  
Ключи компелятора


1-57341           Eraser                2002-03-01 11:44  2002.03.18  
вопрос о множествах