InnoSetup,卸载共享服务

3
我正在通过InnoSetup的代码部分安装和卸载一些服务应用程序,如下所示。
ShellExec('', ExpandConstant('{app}\') + dExeName, '/install /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
    ....
ShellExec('', ExpandConstant('{app}\') + dExeName, '/uninstall /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);

现在我有一个单独的应用程序,使用相同的服务。两个应用程序的安装程序都会安装和卸载这些服务。

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

Faruk。 最好的祝福。

1个回答

0

两个安装程序都应该使用[Registry]部分(http://www.jrsoftware.org/ishelp/index.php?topic=registrysection)设置标志uninsdeletekey在注册表中设置一个条目。

在两个卸载程序中,您可以通过执行类似以下操作来检查其他应用程序是否仍然安装:

 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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接