PDA

Ver la Versión Completa : Leer parámetros que manda otra aplicación


NPIdea
14-09-2010, 10:54:55
Hola a todos.

Tengo que trabajar con una aplicación que no es mia y que me va a mandar ejecutar mi programa con muchas instancias.

Para ello me arrancan mi programa con parámetros, (eso lo tengo solucionado, luego en el Form Create leo con ParmaStr):


ShellExecute(Form1.Handle,nil,Pchar('E:\Cliente\Cliente.exe'),PChar('"127.000.000.001:9000"'),'nil',SW_SHOWNORMAL);


donde PChar('"127.000.000.001:9000"') son los parámetros de una IP y un puerto para establecer comunicaciones.

Para que no quede tan feo abrir un montón de formularios independientes había pensado hacer un MDIForm y luego ir abriendo dinámicamente todos los formularios como MDIChid para cada ShellExecute que me manden, por lo que mi pregunta es si puedo interceptar una segunda instancia del Shellexecute que me lanzan y solo leer los parámetros para crear un MDIChild y no crear otra apliación independiente.

Gracias.

Lord Delfos
14-09-2010, 11:15:45
Creo que lo que tendrías que hacer es controlar que no haya otra instancia de la aplicación. Si no hay una instancia, abrís comúnmente y creas una ventana MDI hija. Si sí hay una instancia previa, entonces le pasás un mensaje a esa instancia dicíendole que habra una nueva ventana MDI hija con tales parámetros.

El amigo Román en su página tiene un muy buen ejemplo (http://romansg.net/index.php?pg=delphi_componentes) de estos asuntos. Lo que no me acuerdo es sí su código no sólo advierte la instancia anterior y cancela la carga, o si además también está contemplado el pasarle un mensaje para que, por ejemplo, cree una nueva ventana.

NPIdea
14-09-2010, 11:20:22
Muchas gracias, estaba intentándolo con CreateMutex, pero me tiraba siempre un error.

Voy a intentar adaptar el ejemplo de Román.