Inno setup, проверьте процесс во время работы .exe и убейте его - PullRequest
0 голосов
/ 31 августа 2010

Мне нужна помощь с настройкой inno. Если это возможно, я хотел бы знать, как:

Проверьте, появляется ли процесс во время выполнения файла .exe (файл .exe вызывается из inno Installation) и появляется ли процесс, уничтожьте его.

Заранее большое спасибо.

Ответы [ 3 ]

0 голосов
/ 12 июня 2014

Закрыть процесс запуска вы можете найти здесь: https://stackoverflow.com/a/24014649/2952483 Затем просто сделайте это по таймеру (TTimer, если вы используете расширенную версию inno setup для Китая, или функции обратного вызова, если вы используете стандарт (как здесь Inno setup: отображение изображений с использованием таймера ))

0 голосов
/ 15 июля 2014

вы можете выполнить cmd с Exec () в inno setup и проверить ResultCode value.eg:

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

, если ResultCode не равен 0, повторное выполнение cmd завершит процесс test.exe.

Exec(ExpandConstant('{cmd}'), '/C taskkill /IM test.exe', '',         SW_SHOWNORMAL,ewWaitUntilTerminated, ResultCode);
0 голосов
/ 04 декабря 2010

Создайте DLL и создайте ссылку на нее из вашего скрипта. В DLL используйте Windows API, чтобы выполнить то, что вам нужно. Например:

GenerateConsoleCtrlEvent( CTRL_C_EVENT, dwProcessId)

отправит control-C в консольное приложение. ИЛИ:

TerminateProcess( ProcessHandle, 1);

завершит указанный процесс. Проверьте MSDN для деталей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...