![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Netsend от другово имени. [D7, Win2k, WinXP]
BLABLA © (2004-09-07 08:44:00)Как реализовать net send от другово имени.
Спасибо всем
MetalFan (2004-09-07 15:41:00) [1]...
Parameters:
servername
[in] Pointer to a constant Unicode string specifying the name of the remote server on which the function is to execute. The string must begin with \\. If this parameter is NULL, the local computer is used.
...
теперь понятно?
Сетевик (2004-09-07 13:28:00) [2]Народ, подскажите, а для чего нужет первый параметр в NetMessageBufferSend ?
MetalFan (2004-09-07 12:19:00) [3]хе-хе... не прокатит!
вот как делаю я:
function NetSend_Messenger(Source,Dest, Msg: String): boolean; type
TNetMessageBufferSendFunction = function(servername, msgname, fromname: PWideChar;
buf: PWideChar; buflen: Cardinal): Longint; stdcall;
TNetNameFunction = function(servername, msgname: PWideChar): Longint; stdcall;
var
NetMessageBufferSend: TNetMessageBufferSendFunction;
SourceWideChar: WideString;
DestWideChar: WideString;
MessagetextWideChar: WideString;
function NameAdd(aName:string):boolean;
var
lWS2: WideString;
lProc:TNetNameFunction;
begin
lWS2:=aName;
@lProc := GetProcAddress(FLibHandle, 'NetMessageNameAdd');
if @lProc = nil then
begin
Result := false;
Exit;
end;
result:= lProc(nil,PWideChar(lWS2))=0;
end;
function NameDel(aName:string):boolean;
var
lWS2: WideString;
lProc:TNetNameFunction;
begin
lWS2:=aName;
@lProc := GetProcAddress(FLibHandle, 'NetMessageNameDel');
if @lProc = nil then
begin
Result := false;
Exit;
end;
result:= lProc(nil,PWideChar(lWS2))=0;
end;
begin
@NetMessageBufferSend := GetProcAddress(FLibHandle, 'NetMessageBufferSend');
if @NetMessageBufferSend = nil then
begin
Result := false;
Exit;
end;
if length(source)>0 then
if not NameAdd(Source) then exit;
SourceWideChar:=Source;
MessagetextWideChar:=Msg;
DestWideChar:=Dest;
if length(Source)>0 then
Result := NetMessageBufferSend(nil, PWideChar(DestWideChar), PWideChar(SourceWideChar),
PWideChar(MessagetextWideChar), Length(MessagetextWideChar) * 2)=0
else
Result := NetMessageBufferSend(nil, PWideChar(DestWideChar), nil,
PWideChar(MessagetextWideChar), Length(MessagetextWideChar) * 2)=0;
NameDel(Source);
end;
Rouse_ (2004-09-07 09:18:00) [4]NetMessageBufferSend, третий параметр слева (или справа :)