Buscar

Mensagem para todos que estão na redewinnt?

Código

Function NetSend(dest, source, msg: string): longint;
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;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Rede
Adicionada dia: 06/06/03
Por: Felipe Monteiro
Visualizada: 4019 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009