Hm, odpiszcie coś ;) Ja tylko dopiszę, że jednak trzeba-by oczywiście skorzystać z funkcji api, a tu podaję kodzik, który prawie działa
implementation
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 { NetSend }
Handle := LoadLibrary('NETAPI32.DLL');
if Handle=0 then
begin
Result := GetLastError;
Exit;
end; { Handle=0 }
@NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend');
if @NetMessageBufferSend=nil then
begin
Result := GetLastError;
Exit;
end; { @NetMessageBufferSend=nil }
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; { not (Source='') }
finally
FreeMem(MessagetextWideChar);
FreeLibrary(Handle);
end; { try }
end; { NetSend }
function NetSend(Dest, Msg: string) : Longint; overload;
begin { NetSend }
Result := NetSend(Dest, '', Msg);
end; { NetSend }
function NetSend(Msg: string) : Longint; overload;
begin { NetSend }
Result := NetSend('', '', Msg);
end; { NetSend }
button1.click(sender:tobject);
begin
NetSend('Mike', 'Hello, Mike');
end.
Załóżmy, że nasz komputer to Mike.
To działa spoko: NetSend('Mike', 'Hello, Mike');
To też : NetSend('Mike','Mike', 'Hello');
Ale gdy chcemy oszukać : NetSend('Mike','Krokodyl', 'Hello'); - tzn chcemy żeby wyświetlił się nam komunikat wiadomości od krokodyla - niestety nie idzie.