Algo dificil de explicar

Iniciado por under!!!, 2 Agosto 2007, 20:46 PM

0 Miembros y 2 Visitantes están viendo este tema.

under!!!

Mi duda es la siguiente ¿como mando datos de un exe a otro exe?, es decir al yo dar clic en un boton del exe1 y que me genere, no se un numero aleatorio o lo que sea pero que me mande el resultado del proceso a un cuadro de texto del exe2.
Espero y me explique bien

Freeze.

utiliza Los Sockets y envias informacion...

Puede ser una buena idea...

under!!!

Suena tonto pero cuales son los sockets :-[

CeLaYa

se refieren al control winsock, solo dale ctrl+t y te sale una ventana de componentes, selecciona la casilla que dice Microsoft Winsock Control..., si tienes la ayuda instalada consula "winsock" y te dara un ejemplo de este control, que por casualidad es exactamente lo que estas búscando.... Saludos!!!
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

under!!!

Pero segun yo el winsock es para conexión en red....... Me voy y a conectar a mi mismo equipo y luego buscar el exe o me conecta a la aplicacion

ActiveSheet

De echo si, te vaz a conectar a ti mismo, si saves tu IP Local pues marcas a tu IP local

Ejemplo 192.168.4.253 y o si no a 127.0.0.1 aun que nunca eh intentado conectarme con 127.0.0.1 pero tiene logica hacerlo ;) si no saves tu ip local sacala asi


Text1 = Winsock1.localIP

creo que es asi, ya tiene mucho que no manejo conexiones dejame ver si te puedo crear un ejemplo xD

CeLaYa

tú te has dado la respuesta, pero no tienes que buscar el exe, aqui lo importante es el puerto que uses, este es el ejemplo  del que te hablaba:

Para crear un servidor TCP
Cree un nuevo proyecto EXE estándar.
Cambie el nombre del formulario predeterminado a frmServer.
Cambie el título del formulario a "Servidor TCP".
Cree un control Winsock en el formulario y cambie su nombre a tcpServer.
Agregue dos controles TextBox al formulario. Llame al primero txtSendData y al segundo txtOutput.

Agregue el código siguiente al formulario.

Private Sub Form_Load()
' Establece la propiedad LocalPort en un entero.
' Después invoca el método Listen.
tcpServer.LocalPort = 1001
tcpServer.Listen
frmClient.Show     ' Muestra el formulario del cliente.
End Sub

Private Sub tcpServer_ConnectionRequest _
(ByVal requestID As Long)
' Comprueba si el estado del control es cerrado.
' De lo contrario, cierra la conexión antes de
' aceptar la nueva conexión.
If tcpServer.State <> sckClosed Then _
tcpServer.Close
' Acepta la petición con el parámetro
' requestID.
tcpServer.Accept requestID
End Sub

Private Sub txtSendData_Change()
' El control TextBox llamado txtSendData
' contiene los datos que se van a enviar. Siempre
' que el usuario escribe en el cuadro de texto,
' se envía la cadena mediante el método SendData.
tcpServer.SendData txtSendData.Text
End Sub

Private Sub tcpServer_DataArrival _
(ByVal bytesTotal As Long)
' Declara una variable para los datos entrantes.
' Invoca el método GetData y establece la propiedad
' Text de un control TextBox llamado txtOutput
' con los datos.
Dim strData As String
tcpServer.GetData strData
txtOutput.Text = strData
End Sub


Los procedimientos anteriores permiten crear una aplicación de servidor sencilla. No obstante, para completar el ejemplo, deberá crear también una aplicación cliente.

Para crear un cliente de TCP
Agregue un nuevo formulario al proyecto y llámelo frmClient.
Cambie el título del formulario a "Cliente TCP".
Agregue un control Winsock al formulario y llámelo tcpClient.
Agregue dos controles TextBox a frmClient. Llame al primero txtSend y al segundo txtOutput.
Cree un control CommandButton en el formulario y llámelo cmdConnect.
Cambie el título del control CommandButton a Connect.

Agregue el código siguiente al formulario.
Importante   Asegúrese de que cambia el valor de la propiedad RemoteHost al nombre descriptivo del equipo.


Private Sub Form_Load()
' El nombre del control Winsock es tcpClient.
' Nota: para especificar un host remoto, puede usar
' la dirección IP (como "121.111.1.1") o
' el nombre "descriptivo" del equipo, como se muestra aquí.
tcpClient.RemoteHost = "NombreEquipoRemoto"
tcpClient.RemotePort = 1001
End Sub

Private Sub cmdConnect_Click()
' Invoca el método Connect para iniciar
' una conexión.
tcpClient.Connect
End Sub

Private Sub txtSendData_Change()
tcpClient.SendData txtSend.Text
End Sub

Private Sub tcpClient_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
tcpClient.GetData strData
txtOutput.Text = strData
End Sub



El código anterior crea una aplicación cliente-servidor sencilla. Para probar las dos aplicaciones al mismo tiempo, ejecute el proyecto y haga clic en Conectar. A continuación, escriba texto en el control TextBox txtSendData de cualquiera de los formularios y el mismo texto aparecerá en el control TextBox txtOutput del otro formulario.

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

~~

Hombre si los dos exe's estan en el mismo pc me parece un poco tonto conectarte con winsock... con crear un archivo de texto q el otro exe lea ya nos bastaria no?

CeLaYa

Cita de: E0N en  2 Agosto 2007, 21:55 PM
Hombre si los dos exe's estan en el mismo pc me parece un poco tonto conectarte con winsock... con crear un archivo de texto q el otro exe lea ya nos bastaria no?

eso tambien vale, pero habria que ver si uziel200 necesita que cuando el programa envie datos el otro programa ejecute alguna acción, de ser asi habria que poner un timer que este checando si existe el archivo
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

under!!!

Oigan muchas gracias por el codigo y la explicacion lo voy a probar ;D