我需要一些关于inno设置的帮助。如果有可能,我想知道如何:
检查.exe文件运行期间是否出现进程(从inno安装调用.exe)以及进程是否显示为kill。
提前多多感谢。
答案 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);