Ese es el código que uso yo para tal finalidad.
Código Delphi
[-]procedure TFormStrogoff.Button1Click(Sender: TObject);
procedure EnviarMensaje( ServidorRemoto,Destinatario,Remitente,Mensaje : String);
var
sTemp : string;
Manejador: THandle;
Cuantos : DWord;
begin
sTemp := '\\'+ServidorRemoto+'\mailslot\messngr';
Manejador := CreateFile( PChar(sTemp),GENERIC_WRITE,FILE_SHARE_READ,
NIL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
If Manejador = INVALID_HANDLE_VALUE then
raise Exception.create( 'Error abriendo el manejador');
sTemp:=Remitente+#0+Destinatario+#0+Mensaje;
try
Cuantos := 0;
If (NOT WriteFile(Manejador,Pchar(sTemp)^,Length(sTemp),Cuantos,NIL)) or
(Cuantos <> Length(sTemp)) then
raise Exception.create( 'Disculpe, podría decirme dónde encontrar la máquina '+edPC.Text);
finally
CloseHandle(Manejador);
end;
end;
var
Mensajito: Widestring;
begin
if ( UpperCase(edPC.Text) <> 'GRUPO_DESCANSO' ) and ( UpperCase(edPC.Text) <> 'WORKGROUP' ) and
( UpperCase(edPC.Text) <> 'GRUPO_TRABAJO' ) and ( UpperCase(edPC.Text) <> 'OTRO_GRUPO' ) then
begin
Sleep( SpinEdit1.Value * 1000 );
EnviarMensaje( edPC.text,edDestinatario.text,
edRemitente.text,edMensaje.Text);
end
else showmessage('No está permitido enviar mensajes a todo el grupo');
end;