Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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, третий параметр слева (или справа :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо