FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hola Faust,
Gracias por tu respuesta, así sé que al menos se entiende lo que pretendo. Me dejas como posible opción la de limitar el número de instancias del programa. Quizás con esto los ficheros siempre se abran en la misma instancia. No sé como hacerlo, pero investigaré mientras espero alguna otra aportación. Gracias!
__________________
"Patientia et constantia taelecum" |
#2
|
|||
|
|||
Hola de nuevo,
Escribo este post porque he observado algo más sobre el comportamiento de la aplicación externa que uso. Resulta que si abro el fichero con shellexecute, pero no he "integrado" la aplicación en el panel con SetParent funciona bien y todos los ficheros se abren sobre esta aplicación. Sin embargo si abro la aplicación, lo "integro" en un panel con SetParent y abro un fichero con ShellExecute, el fichero se abre sobre otra instancia de la aplicación. Si esta nueva instancia la vuelvo a "integrar" en el panel y se vuelve a abrir otro fichero, se abre otra nueva instancia y así sucesivamente. ¿Alguien sabe por qué puede ocurrir esto? Yo lo que pretendo es que todos los ficheros se me abran sobre la misma instancia de la aplicación.
__________________
"Patientia et constantia taelecum" |
#3
|
||||
|
||||
Cita:
__________________
Herr Heins Faust |
#4
|
||||
|
||||
ShellExecute abre la aplicación correspondiente, es decir, crea una instancia nueva de la misma. Si no deseamos crear otra instancia, no sirve ShellExecute. En este caso deberás estudiar como abre archivos la aplicación en cuestión para realizarlo tu (si admite parámetros, método de comunicación, simular teclas rápidas...)
Si la aplicación admite parámetros de ejecución y estos permiten abrir el fichero, que es lo habitual, un truco puede ser usar CreateProcess para abrir la aplicación pesándole el parámetro adecuado para luego integrar su ventana en tu panel. Cada vez que quieras cargar un archivo nuevo, cierras la aplicación y repites el proceso. En esto también podrías usar ShellExecute pero te da menos control sobre el proceso creado. Este sistema puede servir si la aplicación no tarda mucho en abrir, en caso contrario debes investigar los modos ce comunicarte con ella. Saludos. Última edición por escafandra fecha: 27-05-2010 a las 20:45:39. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Abrir fichero asociado si la aplicacion ya esta activa. | Geta | Varios | 4 | 13-03-2009 01:43:51 |
Saber si Firebird esta corriendo | felipe88 | API de Windows | 2 | 14-07-2008 15:05:56 |
Como saber si ya esta corriendo una aplicacion | zugazua2001 | Varios | 2 | 07-05-2008 17:18:01 |
Como saber si una aplicacion esta corriendo??? | vejerf | Varios | 1 | 16-03-2007 13:39:14 |
verificar si una aplicacion esta corriendo | dblx | Varios | 12 | 15-12-2006 01:29:31 |
|