Inno设置,在.exe运行期间检查进程并将其终止

时间:2010-08-31 12:31:44

标签: inno-setup

我需要一些关于inno设置的帮助。如果有可能,我想知道如何:

检查.exe文件运行期间是否出现进程(从inno安装调用.exe)以及进程是否显示为kill。

提前多多感谢。

3 个答案:

答案 0 :(得分:0)

创建一个DLL并从脚本链接到它。在DLL中,使用Windows API来完成您的需要。例如:

GenerateConsoleCtrlEvent( CTRL_C_EVENT, dwProcessId)

会向控制台应用程序发送control-C。 OR:

TerminateProcess( ProcessHandle, 1);

将终止引用的进程。检查MSDN以获取详细信息。

答案 1 :(得分:0)

关闭您可以在此处找到的正在运行的流程:https://stackoverflow.com/a/24014649/2952483 然后只需在计时器上执行(如果您使用inno设置的chinease扩展版本,则使用TTimer;如果使用标准,则使用回调函数(如此处Inno setup: Display Images using timer))

答案 2 :(得分:0)

您可以在inno设置中使用Exec()执行cmd,并检查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);