[Truco Delphi] Alternativa a NET SEND.
function NetSend(dest, source, msg: string): longint; overload; type TNetMessageBufferSendFunction = function(servername, msgname, fromname: PWideChar; buf: PWideChar; buflen: Cardinal): longint; stdcall; var NetMessageBufferSend: TNetMessageBufferSendFunction; SourceWideChar : PWideChar; DestWideChar : PWideChar; MessagetextWideChar: PWideChar; Handle : THandle; begin Handle := LoadLibrary('NETAPI32.DLL'); if Handle = 0 then begin Result := GetLastError; exit; end; @NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend'); if @NetMessageBufferSend = nil then begin Result := GetLastError; exit; end; MessagetextWideChar := nil; SourceWideChar := nil; DestWideChar := nil; try GetMem(MessagetextWideChar, Length(msg) * SizeOf(WideChar) + 1); GetMem(DestWideChar, 20 * SizeOf(WideChar) + 1); StringToWideChar(msg, MessagetextWideChar, Length(msg) * SizeOf(WideChar) + 1); StringToWideChar(Dest, DestWideChar, 20 * SizeOf(WideChar) + 1); if source = '' then result := NetMessageBufferSend(nil, DestWideChar, nil, MessagetextWideChar, Length(msg) * SizeOf(WideChar) + 1) else begin GetMem(SourceWideChar, 20 * SizeOf(WideChar) + 1); StringToWideChar(source, SourceWideChar, 20 * SizeOf(WideChar) + 1); result := NetMessageBufferSend(nil, DestWideChar, SourceWideChar, MessagetextWideChar, Length(msg) * SizeOf(WideChar) + 1); freemem(SourceWideChar); end; finally FreeMem(MessagetextWideChar); FreeLibrary(Handle); end; end; function NetSend(Dest, msg: string): longint; overload; begin Result := NetSend(Dest, '', msg); end; function NetSend(msg: string): longint; overload; begin Result := NetSend('', '', msg); end;
Ejemplo de Uso:
NetSend('egostar','Hello World');
Saludos!