Inno安装程序不允许一个exe在另一个已经运行的情况下运行.我该如何改变这种行为



我们正在通过inno-setup安装程序。我们有一个主exe文件,它运行我们的实际程序,但我们安装了一些始终在后台运行的其他exe。

当main.exe第一次运行时,它会启动另一个exe。其他exe可以一直运行,它实际上是必要的。但是,如果main.exe通过任务管理器停止,或者其他.exe继续运行。当other.exe正在运行时,用户无法运行main.exe。如何更改此行为?

编辑

似乎与innosetup无关,所以我将不得不走答案中建议的路线。

再次编辑问题最终是windows看到main.exe启动了other.exe,并认为它是一个子进程。找到一种在main.exe之外启动other.exe的方法最终是解决方案

如果我理解正确,您有两个(或多个)程序(EXE)。如果MAIN.EXE首先启动,它将启动OTHER.EXE,这是正确的。如果OTHER.EXE首先启动或正在运行,并且MAIN.EXE已停止,则在OTHER.EEXE停止之前,MAIN.EXE不会重新启动。这是正确的吗?如果是这样,您需要同时更改MAIN.EXE和OTHER.EXE。在MAIN.EXE中,您需要检查OTHER.EXE,然后在启动MAIN.EXE之前停止它或告诉用户停止OTHER.EXE.在OTHER.EEXE中,在启动时,您需要检查MAIN.EXE。如果它没有运行,请启动它或在启动OTHER.Eexe之前告诉用户启动它。

看完另一条评论后,我认为我原来的回答不正确。两个程序(APPLICATION.EXE和SERVICE.EXE)本质上不共享互斥,也不会自动阻止它们同时运行。您需要了解SERVICE.EXE运行时APPLICATION.EXE不运行的原因以及返回的错误。这可能有助于确定您需要做什么。您可能仍然需要更改SERVICE.EXE和APPLICATION.EXE.

相关内容

最新更新