Installation 检查应用程序是否正在运行-InstallJammer

Installation 检查应用程序是否正在运行-InstallJammer,installation,tcl,uninstallation,Installation,Tcl,Uninstallation,我正在使用InstallJammer创建应用程序的安装程序。在继续卸载过程之前,我想检查应用程序是否正在运行 set program <%Company%><%AppName%>.exe set pids [twapi::get_process_ids -name $program] foreach pid $pids { catch {twapi::end_process $pid -force} } set program.exe 设置pids[twapi:

我正在使用InstallJammer创建应用程序的安装程序。在继续卸载过程之前,我想检查应用程序是否正在运行

set program <%Company%><%AppName%>.exe
set pids [twapi::get_process_ids -name $program]
foreach pid $pids {
    catch {twapi::end_process $pid -force}
}
set program.exe
设置pids[twapi::get_进程\u ID-名称$program]
foreach pid$pids{
catch{twapi::end_进程$pid-force}
}

上面给出的是我尝试过的TCL脚本。但是脚本不返回任何值。如何解决这个问题?

我假设您正在使用,而只使用

如果使用脚本条件,只需使用kostix给出的表达式:

[llength [twapi::get_process_ids -name <%Company%><%AppName%>.exe]] > 0

这个脚本试图杀死任何正在运行的应用程序,而这些应用程序恰好有一个匹配的名称;严格地说,它不检查任何东西,因此没有任何东西可以返回。我想说,调用所谓的“end_进程”应该很清楚这一点……另一方面,不清楚“返回值”是什么意思——调用方代码应该如何访问该值?参考“InstallJammer”文档中的相关部分可以帮助理解这些要求。@kostix有没有办法检查应用程序是否正在运行?在搜索这个问题时,我得到了上面的脚本作为解决方案
twapi::get_process_id-name$program
返回名称与
$program
匹配的运行进程的PID列表。如果列表非空,则表示应用程序正在运行。也就是说,
expr{[llength[twapi::get_process_ids-name$program]]]>0}
仅当当前至少有一个匹配的进程正在运行时才会返回true。@Gapchoos,我不能,因为我甚至不知道“installJammer”到底是什么。嗯,我有一个模糊的想法,这应该是一个工具来准备可安装的软件包,但仅此而已。因为我不知道它应该如何与它执行的Tcl脚本交互,所以我不能提供完整的脚本。我在上一篇评论中发布的截图应该返回true或false,这取决于所指示的程序是否正在运行。你可以试着从那里开始工作。
expr {[llength [twapi::get_process_ids -name <%Company%><%AppName%>.exe]] > 0}