zoukankan      html  css  js  c++  java
  • NSIS 使用ExecShell打开文件或者应用程序

    在NSIS安装过程中或者安装完成后打开一个应用程序或者文件

    使用ExecShell命令

    语法:ExecShell action command [parameters] [SW_SHOWDEFAULT | SW_SHOWNORMAL | SW_SHOWMAXIMIZED | SW_SHOWMINIMIZED | SW_HIDE]

    action 通常为 "open" 或者 "print"

    command 为要执行的文件,其它都是些可选参数根据自己需要填写。

    在vs code中我们看到语法提示,包含了ExecShell 和ExecShellWait,区别在于后者会等待。

    下面我们实际测试下几个例子

    1、打开文件

    我们在文件夹中放了一个test.txt的文本文件,完了编译运行测试是否打开这个文本文件

    Unicode true
    OutFile "ExceShell.exe"
    
    Section "main" sec1
        ExecShell open "$EXEDIR/test.txt"
        DetailPrint "使用ExecShell 打开test.txt成功"
    SectionEnd

    编译执行后如下:

    运行后确实打开了文件,并且没有等待打开的文件关闭即执行了后面的指令,完成了。

    2、打开应用程序

    命令修改如下:

    ; ExecShell open "$EXEDIR/test.txt"
    ; DetailPrint "使用ExecShell 打开test.txt成功"
    ExecShell open "D:Program Files (x86)NSISNSIS.exe"
    DetailPrint "使用ExecShell 打开NSIS.exe成功"

    编译运行后如下:

     运行后确实打开了程序,并且没有等待打开的程序关闭即执行了后面的指令,完成了。

     通过上面的例子,我们已经可以在安装脚本中打开一个文件或者应用程序,前面都提到了执行完命令后没有等待,而是立即执行了后面的代码,下面我们就来验证下,如何在打开一个应用后等待该应用关闭后再执行后面的代码。

    我们再对代码稍作修改,如下所示:

     编译运行如下所示:

     很明显,安装进度被卡在了这里,没有打印输出后面的内容,当我们关闭打开的NSIS.exe后,安装继续打印了内容并完成。

    3、打开url地址

    ExecShell "open" "http://nsis.sf.net/"
  • 相关阅读:
    geodatabase在sql server和Oracle上的应用
    python:AttributeError: module 'xxxx' has no attribute 'xxxxx'
    sql server复制一张表到另一张表
    pyodbc:Python使用pyodbc访问数据库操作方法
    python如何生成token
    WebGIS应用案例
    SAP UI5 里如何让每次视图显示时都执行某方法
    使用开源微前端框架 Luigi 创建一个基于微前端架构的工程
    关于 SAP 产品 UI 的搜索引擎优化 SEO
    Debug a Server–Side Rendered SAP Spartacus Storefront Using Chrome Dev Tools
  • 原文地址:https://www.cnblogs.com/njabsky/p/14056034.html
Copyright © 2011-2022 走看看