service - innosetup,卸载共享服务

标签 service inno-setup uninstallation shared

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

ShellExec('', ExpandConstant('{app}\') + dExeName, '/install /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
    ....
ShellExec('', ExpandConstant('{app}\') + dExeName, '/uninstall /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);

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

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

法鲁克。 最好的问候。

最佳答案

两个安装程序都应使用 [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;

关于service - innosetup,卸载共享服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32095770/

相关文章:

c# 如何在客户端管理 wcf 服务代理生命周期?

environment-variables - 运行 Inno Setup 安装程序时如何修改 PATH 环境变量?

c++ - 安装了两个 OpenCV(不同版本),我无法删除过去一个的所有痕迹

android - 检测我的应用程序是否已卸载

inno-setup - 根据使用 Inno Download Plugin 选择的任务进行下载?

uninstallation - 如何卸载/删除 Visual Studio SP1

javascript - Angular 2 中嵌套的 json 数据 - 如何过滤?

asp.net-mvc - ASP.NET MVC 中的 Entity Framework 和对象上下文生存期

具有服务器端输入的 Java Linux 守护进程/服务

c# - AppMutex 不适用于 Inno Setup