FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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 ] |
#2
|
||||
|
||||
Bueno amigos ya he resuelto el problema, a continuación muestro el código para si a alguien le hace falta algún día, el procedimiento es llamando al "net send" del MS-DOS y pasándole como parámetros el nombre o IP de la máquina a mandar el mensaje y luego el texto del mensaje...
Código:
procedure TForm1.Button1Click(Sender: TObject); begin Try WinExec(Pchar('net send ' + ComboBox1.Text + ' ' + Edit1.Text),0); MessageDlg('El mensaje ha sido enviado satisfactoriamente al usuario: [' + ComboBox1.Text + ']',mtInformation, [mbOK], 0); Except MessageDlg('El mensaje no se ha podido enviar...', mtError, [mbOK], 0); End; end;
__________________
Lester Espinosa Martínez [ Guía de estilo | La otra guía de estilo | Buscador | Trucos | My personal blog ] |
|
|
|