Windows Inno设置和NSSM服务工作集成

Windows Inno设置和NSSM服务工作集成,windows,service,installation,inno-setup,nssm,Windows,Service,Installation,Inno Setup,Nssm,我有一个应用程序要用Inno setup打包到安装文件中。应用程序必须在Windows上作为服务运行。我使用NSSM服务管理器在一台计算机上完成它。然而,在Inno安装包中,我找不到任何使之成为可能的技巧 NSSM是否与此相关,或者是否有可能使服务与Inno脚本一起工作 下载 提取Zip文件,然后将nssm.exe复制到源路径(Inno安装脚本从中获取源) 创建bat文件以允许nssm将应用程序设置为服务,如下所示: nssm install "ServiceName" "YourAPP.EXE

我有一个应用程序要用Inno setup打包到安装文件中。应用程序必须在Windows上作为服务运行。我使用NSSM服务管理器在一台计算机上完成它。然而,在Inno安装包中,我找不到任何使之成为可能的技巧

NSSM是否与此相关,或者是否有可能使服务与Inno脚本一起工作

  • 下载
  • 提取
    Zip
    文件,然后将
    nssm.exe
    复制到源路径(Inno安装脚本从中获取源)
  • 创建bat文件以允许
    nssm
    将应用程序设置为服务,如下所示:

    nssm install "ServiceName" "YourAPP.EXE"
    nssm set "ServiceName" AppDirectory %CD%
    nssm start "ServiceName"
    del "%~f0"
    
    [Files]
    Source: "..\YOUR-SOURCE-PATH\file.bat"; DestDir: "{app}";
    Source: "..\YOUR-SOURCE-PATH\nssm.exe"; DestDir: "{app}";
    
    Filename: "{app}\file.bat"; \
        Flags: nowait postinstall hidewizard runhidden runascurrentuser; \
        Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"
    
    注意:
    del“%~f0”
    要在安装完成后删除bat文件,如果不需要,请从bat文件中删除该行

  • 在源路径中添加上一个bat文件

  • 将新源添加到Inno安装脚本,如下所示:

    nssm install "ServiceName" "YourAPP.EXE"
    nssm set "ServiceName" AppDirectory %CD%
    nssm start "ServiceName"
    del "%~f0"
    
    [Files]
    Source: "..\YOUR-SOURCE-PATH\file.bat"; DestDir: "{app}";
    Source: "..\YOUR-SOURCE-PATH\nssm.exe"; DestDir: "{app}";
    
    Filename: "{app}\file.bat"; \
        Flags: nowait postinstall hidewizard runhidden runascurrentuser; \
        Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"
    
  • [Run]
    部分下添加bat文件以设置服务并启动应用程序,如下所示:

    nssm install "ServiceName" "YourAPP.EXE"
    nssm set "ServiceName" AppDirectory %CD%
    nssm start "ServiceName"
    del "%~f0"
    
    [Files]
    Source: "..\YOUR-SOURCE-PATH\file.bat"; DestDir: "{app}";
    Source: "..\YOUR-SOURCE-PATH\nssm.exe"; DestDir: "{app}";
    
    Filename: "{app}\file.bat"; \
        Flags: nowait postinstall hidewizard runhidden runascurrentuser; \
        Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"
    

  • 我希望它有用,我要感谢@MartinPrikryl

    我过去做过这件事。你有什么问题?发布你的脚本和你看到的行为。@mirthel实际上我甚至不能在脚本中添加任何关于NSSM的代码。我找不到任何关于它的例子。我也不希望有任何关于NSSM和InnoSetup的具体例子。您需要做的是让NSSM部件自行工作,然后将其集成到InnoSetup中。我可以告诉你,我所做的只是在我的scrip中包含NSSM可执行文件并添加一个[RUN]条目。@mirtheil是否可以编写我自己的脚本(.bat)来通过NSSM创建服务。因为在创建服务时,nssm接口正在打开,而通过.bat文件打开它是一个障碍?是这样的,你怎么看?试着突出显示关键词,并清楚地说明它的格式,这将有助于你找到其他人的答案。这是我的第一个答案,我不知道为什么会出现这样的情况,我设置了代码标志,并将其写入步骤组织编辑好的,所有都是这样的。将通过您即将提供的内容来更正它。祝你一切顺利。