2010-08-31 10 views
0

J'ai besoin d'aide avec la configuration d'inno. Si c'est possible, je voudrais savoir comment:Inno installation, vérifier le processus pendant un .exe est en cours d'exécution et le tuer

Vérifiez si un processus apparaît pendant l'exécution d'un fichier .exe (le fichier .exe est appelé depuis l'installation d'inno) et si le processus apparaît, tuez-le.

Merci beaucoup d'avance.

+0

Inno-setup n'a pas vraiment beaucoup de choses à voir avec votre question. Peu importe si le programme de surveillance est lancé depuis inno-setup ou d'une autre manière. – Otherside

+0

Voir http://stackoverflow.com/questions/1576792/uninstall-fails-because-program-is-running-how-do-i-make-inno-setup-check-for-ru – ewall

Répondre

0

Créez une DLL et créez un lien à partir de votre script. Dans la DLL, utilisez l'API Windows pour accomplir ce dont vous avez besoin. Par exemple:

GenerateConsoleCtrlEvent(CTRL_C_EVENT, dwProcessId) 

va envoyer un control-C à une application de la console. OU:

TerminateProcess(ProcessHandle, 1); 

terminera le processus référencé. Vérifiez MSDN pour plus de détails.

0
vous

peut exécuter un cmd avec Exec() dans la configuration Inno et vérifiez ResultCode value.eg:

Exec(ExpandConstant('{cmd}'), '/C tasklist | findstr "test.exe"', '',   SW_SHOWNORMAL,ewWaitUntilTerminated, ResultCode); 

si ResultCode est 0, exécuter un nouveau cmd va tuer le processus de test.exe.

Exec(ExpandConstant('{cmd}'), '/C taskkill /IM test.exe', '',   SW_SHOWNORMAL,ewWaitUntilTerminated, ResultCode);