Lester
14-11-2003, 14:54:18
Hola a todos los amigos:
Tengo realizada una aplicación que envía mensajes por la red, simulando el comando "net send", pero el problema es que me envía más de un mensaje, o sea, al usuario al cual le envío el mensaje le llegan como 3 mensajes iguales y yo solamente le envío uno..., el código que utilicé lo inserto a continuación para una mayor comprensión, espero me puedan ayudar con este problemita...
Muchas gracias por adelantado...
procedure TForm1.Button1Click(Sender: TObject);
var
ComandoMensaje : String;
procedure MandaWinpopup( ServidorRemoto,
Destinatario,
Remitente,
Mensaje : String);
var
sTemp : string;
Mango : THandle;
Cuantos : DWord;
begin
sTemp := '\\'+ServidorRemoto+'\mailslot\messngr';
Mango := CreateFile( PChar(sTemp),
GENERIC_WRITE,
FILE_SHARE_READ,
NIL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if Mango = INVALID_HANDLE_VALUE then
raise Exception.create( 'Error abriendo el slot'+#13+
'Error opening the slot');
sTemp:=Remitente+#0+Destinatario+#0+Mensaje;
try
Cuantos := 0;
if (NOT WriteFile(Mango,
Pchar(sTemp)^,
Length(sTemp),
Cuantos,
NIL)) or
(Cuantos <> Length(sTemp)) then
raise Exception.create( 'No puedo mandar el mensaje'+#13+
'Cannot send the message');
finally
CloseHandle(Mango);
end;
end;
begin
ComandoMensaje := '';
ComandoMensaje := Edit1.Text;
MandaWinpopup(ComboBox1.Text, {A quien va dirigido el mensaje}
ComboBox1.Text, {Nombre a quién va dirigido}
GetComputerName, {Nombre del que envía el mensaje}
ComandoMensaje); {Mensaje}
MessageDlg('El mensaje se ha enviado satisfactoriamente al usuario [' + ComboBox1.Text + ']', mtInformation, [mbOK], 0);
ComboBox1.ItemIndex := 0;
Edit1.Clear;
ComboBox1.SetFocus;
end;
Tengo realizada una aplicación que envía mensajes por la red, simulando el comando "net send", pero el problema es que me envía más de un mensaje, o sea, al usuario al cual le envío el mensaje le llegan como 3 mensajes iguales y yo solamente le envío uno..., el código que utilicé lo inserto a continuación para una mayor comprensión, espero me puedan ayudar con este problemita...
Muchas gracias por adelantado...
procedure TForm1.Button1Click(Sender: TObject);
var
ComandoMensaje : String;
procedure MandaWinpopup( ServidorRemoto,
Destinatario,
Remitente,
Mensaje : String);
var
sTemp : string;
Mango : THandle;
Cuantos : DWord;
begin
sTemp := '\\'+ServidorRemoto+'\mailslot\messngr';
Mango := CreateFile( PChar(sTemp),
GENERIC_WRITE,
FILE_SHARE_READ,
NIL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if Mango = INVALID_HANDLE_VALUE then
raise Exception.create( 'Error abriendo el slot'+#13+
'Error opening the slot');
sTemp:=Remitente+#0+Destinatario+#0+Mensaje;
try
Cuantos := 0;
if (NOT WriteFile(Mango,
Pchar(sTemp)^,
Length(sTemp),
Cuantos,
NIL)) or
(Cuantos <> Length(sTemp)) then
raise Exception.create( 'No puedo mandar el mensaje'+#13+
'Cannot send the message');
finally
CloseHandle(Mango);
end;
end;
begin
ComandoMensaje := '';
ComandoMensaje := Edit1.Text;
MandaWinpopup(ComboBox1.Text, {A quien va dirigido el mensaje}
ComboBox1.Text, {Nombre a quién va dirigido}
GetComputerName, {Nombre del que envía el mensaje}
ComandoMensaje); {Mensaje}
MessageDlg('El mensaje se ha enviado satisfactoriamente al usuario [' + ComboBox1.Text + ']', mtInformation, [mbOK], 0);
ComboBox1.ItemIndex := 0;
Edit1.Clear;
ComboBox1.SetFocus;
end;