Service innosetup,卸载共享服务

Service innosetup,卸载共享服务,service,inno-setup,uninstallation,shared,Service,Inno Setup,Uninstallation,Shared,我正在通过InnoSetup的代码部分安装和卸载一些服务应用程序,如下所示 ShellExec('', ExpandConstant('{app}\') + dExeName, '/install /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); .... ShellExec('', ExpandConstant('{app}\') + dExeName, '/uninstall /silent', '', SW_HIDE

我正在通过InnoSetup的代码部分安装和卸载一些服务应用程序,如下所示

ShellExec('', ExpandConstant('{app}\') + dExeName, '/install /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
    ....
ShellExec('', ExpandConstant('{app}\') + dExeName, '/uninstall /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
现在我有一个单独的应用程序,它使用相同的服务。两个应用程序的安装程序都会安装和卸载这些服务

我需要一个解决方案,卸载程序不应该卸载,如果其他应用程序仍然存在于计算机上

法鲁克。
致以最诚挚的问候。

两个安装程序都应该使用
[Registry]
部分()设置标志
未删除项
在注册表中设置一个条目

在这两个卸载程序中,您可以通过执行以下操作来检查另一个应用程序是否仍在安装

 if not RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Faruk\OtherSoftwareName') then
 begin
    // The key exists
    ShellExec('', ExpandConstant('{app}\') + dExeName, '/uninstall /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); 
 end;