Comunicación entre programas

Soponganse que tengo dos programas cargados. El programa tiene un control TextBox para aceptar datos. Quisiera saber la forma en el programaB puede enviar datos al
Control TextBox de el programa y en general busco que me indiquen como desde un programa puedo comunicarme con cualquier control de otro programa. Desde luego quiero saber como
Programar esto en Visual Basic

1 respuesta

Respuesta
1
Supongo que los 2 programas los haces vos en Visual basic, en ese caso tendrías que prepararlos para tales funciones.
Tienes 2 maneras, una es con API, en ese caso la programación es compleja, la segunda manera es más sencilla, es utilizando el WinSock con el protocolo UDP, en este caso te quedaría una comunicación bidireccional ente los 2 programas e incuso aunque los 2 programas no estén en la misma maquina, los comunicarías por la red.
Tienes que cargar 1 componente Microsoft WinSock Control en cada aplicación, en su propiedad Protocol seleccionas la sckUDPProtocol, luego en el evento Load del form de cada programa pones:
Private Sub Form_Load()
With WinSock1
. RemoteHost= "nombre de la maquina, esto lo ves en la sección red en el panel de control.
.RemotePort = 'acá pones 1001 en el primer programa y 1002 en el segundo
.Bind 'acá pones 1002 para el primero y 1001 para el segundo
End With
End Sub
ahora para enviar un texto al otro programa solo pones:
WinSock1.SendData "texto a enviar"
y en el otro programa se activa el evento siguiente:
Private Sub WinSock1_DataArrival(ByVal bytesTotal As Long)
Dim DatosRecividos As String
WinSock1.GetData DatosRecividos
'en DatosRecividos guardas el texto que envio la otra aplicacion
End Sub
Con esto podes hacer el traspaso de información entre los programas, si vos coordinas una serie de comando que vos mismo los definís, podes controlar el otro programa como quieras, con esto podes hacer hasta un programa de chat, pero con solo enviar agunas palabras claves ya tienes el control de la aplicación, espero que esto te sirva, cualquier duda estoy a tu disposición.
Creo que vos me has respondido preguntas que hice últimamente (casi nunca lo había hecho).
Por ahora, te doy una aclaración acerca de la pregunta sobre comunicación entre programas.
*****************************
Gracias por tu interés en ayudarme.
Creo que tal vez no me expliqué bien.
En primer lugar si usara el WinSock, pero no tengo una tarjeta de red
podría tener problemas (pregunto: ¿Los solucioaria enviando datos al IP 127.0.0.1?).
En segundo lugar digamos que vos solo has programado programa. ProgramaB fue hecho por un desconocido (suposición).
Lo único que sabés por que ejecutás programaB es que éste tiene un visible un control TextBox en el cual se pueden insertar
o extraer datos. Mi pregunta es entonces como enviar datos desde programa hasta el TextBox de programaB.
Yo quiero manipular cualquier control en general, no sólo el TextBox. Elegí sólo ese control por simplicidad.
Presiento que definitivamente se deben usar API's y como decís que sabés cuales son, por favor indicámelo,
no tengas pena que ya tengo algún tiempo de trabajar con otras APIS's.
Cuando ya haya resuelto esta duda, como me parece que sos bueno para programar el WinSock, te voy a molestar
con una manita, en concreto para descargar páginas mediante ese control.
Ahora la cosa cambia teniendo solo el programa para trabajar, conozco muchas API's para interactuar con otros programas, pero son para modificar su menu, su barra de titulo, y algunas otras cosas más, pero no tratar de ubicar un textbox dentro de una aplicación, Dejame que pruebo con algunas que tengo y si funciona te mando el código.
Con respecto al WinSock no hace falta una placa de red a no ser que los programas estén en maquinas distintas, el control puede utilizar solo el nombre del equipo para efectuar una comunicación, no hace falta un dirección de IP, de eso si ya tengo andando varios programas así que no dudes en preguntar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas