• 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/"
  • 相关阅读:
    DRF (Django REST framework) 框架介绍(2)
    DRF (Django REST framework) 框架介绍(1)
    Django中的Admin站点
    Django中的模板和表单
    Django数据库
    跨站请求伪造CSRF以及Flask中的解决办法
    Flask中的模板,Jinjia2介绍
    Flask中的上下文和flask-script扩展
    化学品撮合交易系统
    化学品产品查询系统解决方案
  • 原文地址:https://www.cnblogs.com/njabsky/p/14056034.html
Copyright © 2020-2023  润新知