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/"
  • 相关阅读:
    Bash 命令的解析
    vscode ctrl+P 打开文件后固定文件
    Linux 使用 tree 命令生成文件目录结构
    分享一款“暗黑系列”Idea主题插件Material Theme【改】
    linux上搭建svn服务器并设置自启动
    springBoot项目里获取resource目录下的文件(可用于各种linux服务器部署)【我】
    linux下svn与apache整合搭建
    liunx设置utf-8
    Fiddler抓包,并修改请求数据
    解决vue+el使用this.$confirm,不能阻断代码往下执行
  • 原文地址:https://www.cnblogs.com/njabsky/p/14056034.html
Copyright © 2011-2022 走看看