Dde

Necesito información de como hacer comunicar a través de DDE 2 formularios creados por mi, en 2 procesos diferentes, de forma que desde el primero y lanzandandolo desde un Shell, pueda pasarle al segundo el hWnd o el PID del primero.
Para premio:
¿Conoces la API SendMessage? ¿En tal caso, sabrías decirme cuales son las constantes necesarias para añadir una linea a un MSFlexGrid desde un proceso externo al de la grid?
De antemano, gracias por el interés.

1 respuesta

Respuesta
1
Emilio:
No estoy seguro que sea exactamente lo que necesitas, pero te explico como hacer funcionar DDE ya que tu pregunta está hace rato sin responder.
No tengo a mano la sendmessage, pero creo que puedes buscar en www.allapi.net
Ahi te va DDE:
Creación de un programa Servidor ( el programa servidor es el que suministra
la información al cliente ).
1.- Crear una nueva aplicación y darle un nombre, por ejemplo "Servidor".
2.- En las propiedades del Form, poner en LinkMode a 1 Source.
3.- Y en LinkTopic, escribir un nombre cualquiera, por ejemplo "FrmServidor"
4.- Cambiar la propiedad name del formulario a lo mismo que el LinkTopic :
"FrmServidor"
5.- Poner una caja de texto, y llamarla como queráis, por ejemplo
TxtDdePrueba
6.- Generar un ejecutable con el mismo nombre del programa, es decir
"Servidor".
Creación de un programa Cliente ( es el que recibe los datos que le manda el
servidor).
1.- Crear una nueva aplicación y darle un nombre, por ejemplo "Cliente".
2.- Poner una caja de texto en el formulario.
3.- Poner en las propiedades de la caja de texto, en LinkTopic el nombre de
la aplicación servidora y el linktopic de la aplicación servidora, separados
por un pipe (pulsando altgr + 1 ) :
text1.LinkTopic = "Servidor|FrmServidor"
4.- Poner en las propiedades de la caja de texto, en LinkItem, el nombre de
la caja de texto de la aplicación servidor :
text1.LinkItem = "TxtDdePrueba"
5.- Cambiar el LinkMode de la caja de texto a 1
text1. LinkMode = vbAutomatic
La aplicación estaría lista para comunicarse con el servidor. Cuando
escribáis cualquier cosa en la caja de texto "TxtDdePrueba", aparecerá en la
caja Text1 de la aplicación cliente.
Si la aplicación cliente quisiera ejecutar cualquier cosa de la aplicación
servidora tendría que usar la siguiente sentencia
Text1. LinkExecute ("Loquesea")
En la aplicación servidora abría que añadir
Sub Form_LinkExecute(cmdstr As String, Cancel As Integer)
cancel = false
select case cmdstr
case "loquesea"
call loquesea
case else
Cancel = true
end select
end sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas