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.
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