
06/11/2009, 16:01
|
 | | | Fecha de Ingreso: julio-2006 Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 8 meses Puntos: 29 | |
Respuesta: Problema al arrastrar un formulario Quizá puedas usar SaveSetting y GetSetting para ir pasando los datos a través del registro.
En el receptor pones un timer con algo como esto:
Timer1_Timer()
TextoCapturado = GetSetting(App.Title, "TXRX", "Datos", "")
SaveSetting App.Title, "TXRX", "Datos", ""
Call ProcesaDatos (TextoCapturado)
End Sub
o puedes hacer un bucle con un Loop como lo tenias
y en el transmisor:
SaveSetting App.Title, "TXRX", "Datos", GetSetting(App.Title, "TXRX", "Datos", "") & vbCrLf & DatosAEnviar
De este modo si el transmisor es más rápido que el receptor irá acumulando los datos en el registro y cuando el receptor los lea los borra y procesa todos los paquetes enviados.
Es una idea.
Otra idea es usar SendMessage para mandar los datos a un textbox del programa receptor. Incluso para no tener que andar usando FindWindow para conseguir el hWnd del textbox receptor puedes hacer que el programa receptor al arrancar guarde el hwnd del textbox receptor en el registro usando savesetting y el transmisor mande los datos con sendmessage a ese hwnd, evitando así usar findwindow tantas veces. No se si me explico.
PD:
El problema aquí es que si quieres conseguir acumular los datos enviados tienes que usar 3 veces sendmessage. Una para conseguir la longitud del texto actual, otra para conseguir el texto en si y otra para mandar el texto mas los nuevos datos.
Lo mejor sería probar primero sin intentar acumularlos a ver si el receptor responde bien.
Igual con sendmessage que con savesetting yo probaría primero sin acumular:
SaveSetting App.Title, "TXRX", "Datos", DatosAEnviar
en lugar de
SaveSetting App.Title, "TXRX", "Datos", GetSetting(App.Title, "TXRX", "Datos", "") & vbCrLf & DatosAEnviar
Si usas un Loop igual tiene suficiente velocidad el receptor.
Que se dé bien.
Última edición por pkj; 06/11/2009 a las 16:20 |