【问题标题】:Inno Setup Run code before and after installationInno Setup 安装前后运行代码
【发布时间】:2016-06-26 13:56:11
【问题描述】:

我将从客户端计算机安装我们的软件,并且我想运行一个过程CreateServiceCMD,它会停止/启动文件服务器上的三个服务。因此在文件服务器上运行第四个服务,它将等待 CMD 文件。优点是:安装不需要管理员权限!

你必须知道它是如何工作的(应该工作):

  • 从客户端计算机开始设置
  • 选择路径后,程序CreateServiceCMD(stop)会在服务器上创建CMD文件,我的特殊服务会停止其他三个服务
  • 在服务器上安装文件
  • 使用参数“UpdateAutoClose”启动应用程序一次(见下文),应用程序将启动,数据库将更新,应用程序自动关闭,一切正常,设置完成
  • 但在完成之前,我必须调用程序CreateServiceCMD(start),让我在服务器上的特殊服务再次启动其他三个服务。

我尝试了所有方法,但找不到CreateServiceCMD(start) 的正确位置。 AfterInstall, PostInstall, wpFinished, DeInitializeSetup() 我试了好几个小时...

[Run]

Filename: "{code:GetInstallDir|Program}\{#AppStartName}"; Parameters: "-UpdateAutoClose"; \
  Flags: postinstall skipifsilent; \
  Description: "{cm:LaunchProgram, {#AppName} {#AppVerTxt} Datenbank Update}"

问题是,我必须等到应用程序再次关闭然后运行我的程序,但我找不到正确的位置。我尝试的一切都太早了。

希望有人能帮忙...?

【问题讨论】:

    标签: service inno-setup


    【解决方案1】:

    相信您正在寻找CurStepChanged

    procedure CurStepChanged(CurStep: TSetupStep);
    begin
      if CurStep = ssInstall then
      begin
        { installation is starting }
        CreateServiceCMD(stop);
      end
        else
      if CurStep = ssPostInstall then
      begin
        { installation has finished }
        CreateServiceCMD(start);
      end;
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 2020-04-21
      • 2021-09-15
      • 2016-02-06
      相关资源
      最近更新 更多