Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.18;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
14-57514
Sir Alex
2002-01-29 18:49
2002.03.18
Клиент для чтения форумов DMFC 1.1.002a


3-57286
Alex17
2002-02-18 17:32
2002.03.18
Поиск Lookup


1-57373
Jawdet
2002-03-04 22:31
2002.03.18
Ошибка USER32.EXE


1-57413
Hewlping
2002-03-01 17:57
2002.03.18
СРОЧНО!!!!


7-57527
VictorM
2001-12-11 16:28
2002.03.18
звук