Ver Mensaje Individual
  #1  
Antiguo 14-11-2003
Avatar de Lester
Lester Lester is offline
Miembro
 
Registrado: may 2003
Ubicación: Cienfuegos, Cuba.
Posts: 106
Reputación: 22
Lester Va por buen camino
Post Problema con mandar mensajes...

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...

Código:
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;
__________________
Lester Espinosa Martínez

[ Guía de estilo | La otra guía de estilo | Buscador | Trucos | My personal blog ]
Responder Con Cita