![]() |
Controlar la ejecución de un proceso
Hola a todos, les cuento que luego de encontrar la forma de embeber un .exe en mi aplicación mas surgieron otras dudas como:
Como hago para controlar que la aplicación que estoy ejecutando se ejecute solo una vez, leí varias formas dentro del foro las cuales obtenían los procesos del sistema para ver si se estaban ejecutando pero pode default el .exe que ejecuto desde mi aplicación esconde el proceso por lo cual no lo ve. Por lo cual fui por el lado de ejecutar el .exe y esperar a que termine el proceso del .exe que lance así puedo verificar si mi proceso esta levantado y no ejecutar de nuevo. Pero me di cuenta que si voy al administrador de procesos de windows y termino mi proceso el .exe que ejecute sigue ejecutandose. Por lo cual tengo dos proguntas como hago para evitar que se ejecute dos veces un .exe el cual el proceso esta escondido ?? ó Como hago para que cuando se cierre mi programa se cierre este proceso ?? Les dejo mi codigo (estoy ejecutando todo desde el dproj):
|
Hola satelier.
Probá de esta forma:
Un saludo. |
ecfisa, no entendí bien que hace tu código igualmente lo probé y no funciono. Al parece no detecta el L2.exe que se esta escondiendo de la lista de procesos.
Y nisiquiera puedo terminar la ejecucion del mismo cuando terminan la mia abruptamente desde el administrador de atareas de windows. Me esta comiendo la cabeza :mad: Gracias por la respuesta. Saludos. |
Hola.
La función CreateMutex , si bién se usa para controlar secciones críticas en programacion concurrente, en este caso su función es relacionar un identificador único a cada instancia de la aplicación. En el ejemplo, si encuentra que dicho identificador está presente, aborta la ejecución del programa. Si no, continua la ejecución. Es por que no depende de la búsqueda de procesos, como las que has utilizado, que te la sugerí. El ejemplo que te puse es totalmente funcional en situaciones normales, pero al ocultar el proceso puede que tampoco encuentre el identificador y por lo tanto no aborte la ejecución... Un saludo. |
La franja horaria es GMT +2. Ahora son las 20:22:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi