Detener un programa
¿Cómo puedo detener la ejecución de un programa hasta que se cierre una aplicación externa que he abierto con un ShellExecute? Tengo este código:
Código:
try |
Hola.
En lugar de ShellExecute tendrías que usar CreateProcess y WaitForSingleObject. Un ejemplo para llamar a la calculadora de windows y esperar a que esta cierre para continuar: Código:
{ |
Pfff eso se vuelve un poco complicado, porque con ShellExecute no se puede, pero si con CreateProcess, el problema de este ultimo es que no te ejecuta archivos directamente por lo que tendrás que buscar la ruta del programa que abre el archivo mediante registro de Windows u otro método, por lo demás te dejo código que hace lo que quieres, en este ejemplo ejecuto el programa de acrobat pasándole el archivo que quiero que habrá como parámetro y desplegando un mensaje después de que se cierra el acrobat.
Código:
STARTUPINFO si; //Estructura de inicio de proceso |
Hola.
Para que el código sea reutilizable podés hacerte una función: Código:
void CreateProcessAndWait(AnsiString AppName, AnsiString Args) Código:
{ Edito: Tené en cuenta que si la aplicación es de 16 bits lpApplicationName tendrá que ser NULL, mientras que el nombre de la aplicacion y los parámetros deberan ser especificados en lpCommandLine. (CREATE PROCESS function) |
Gracias a todos por las ideas. Voy a probarlo ahora mismo.
|
Reitero el agradecimiento a los que me habéis dado una respuesta. En este caso concreo, y como se trata de visualizar Pdf, encontré un solución mejor con lo sugeriod en Visor archivos PDF.
No obstante me guardo el código que habéis subido porque es muy interesante y seguro que me hace falta en otro momento. |
La franja horaria es GMT +2. Ahora son las 20:29:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi