nsi脚本中执行.bat文件要隐藏dos窗口问题
2016-05-25 14:48
453 查看
问题原因:工作中,在一个nsi的安装脚本文件中需要安装虚拟摄像头驱动,安装驱动脚本是.bat文件。使用nsi的execwait函数执行.bat文件时会显示dos窗口。但是领导要求不能显示dos窗口。
解决方法一:思路是看看bat脚本命令本身有没有隐藏dos方法。但是没有找到。后来发现可用用.vbs文件调用来隐藏。
创建一个.vbs文件,写入:createobject ("wscript.shell").run "a.bat",1,TRUE。使用.vbs文件来调用bat文件。windows下执行时可以隐藏窗口的。但是发现在nsi脚本无法执行.vbs文件。
所有方法一失败了。
方法二:查看nsi本身带有的exec执行函数。
网上查看到有
1、ExecWait "$INSTDIR\nsis.bat" //可以等待 不可以隐藏窗口
2、nsExec::Exec "$INSTDIR\nsis.bat" //可以等待 可以隐藏窗口
3、ExecShell Open "$INSTDIR\nsis.bat" "" SW_HIDE // 不可以等待 可以隐藏窗口
4、ExecCmd::exec "$INSTDIR\nsis.bat" // 不可以等待 可以隐藏窗口 ( Pop $0、 ExecCmd::wait $0 等待)
我们需要等待bat文件返回,而且要隐藏窗口,那么可以用第二个 nsExec::Exec函数。
nsExec::Exec函数是个nsis的nsExec.dll插件中的方法。所有需要在脚本文件中添加插件。
添加方法是
!addplugindir Plugins //添加nsis程序中附带的插件库目录
nsExec::Exec '${VCAM_INSTALL}' //执行相关的.bat文件 VCAM_INSTALL是个.bat文件的完整路径变量。
好了,这样就不会显示dos窗口了。
解决方法一:思路是看看bat脚本命令本身有没有隐藏dos方法。但是没有找到。后来发现可用用.vbs文件调用来隐藏。
创建一个.vbs文件,写入:createobject ("wscript.shell").run "a.bat",1,TRUE。使用.vbs文件来调用bat文件。windows下执行时可以隐藏窗口的。但是发现在nsi脚本无法执行.vbs文件。
所有方法一失败了。
方法二:查看nsi本身带有的exec执行函数。
网上查看到有
1、ExecWait "$INSTDIR\nsis.bat" //可以等待 不可以隐藏窗口
2、nsExec::Exec "$INSTDIR\nsis.bat" //可以等待 可以隐藏窗口
3、ExecShell Open "$INSTDIR\nsis.bat" "" SW_HIDE // 不可以等待 可以隐藏窗口
4、ExecCmd::exec "$INSTDIR\nsis.bat" // 不可以等待 可以隐藏窗口 ( Pop $0、 ExecCmd::wait $0 等待)
我们需要等待bat文件返回,而且要隐藏窗口,那么可以用第二个 nsExec::Exec函数。
nsExec::Exec函数是个nsis的nsExec.dll插件中的方法。所有需要在脚本文件中添加插件。
添加方法是
!addplugindir Plugins //添加nsis程序中附带的插件库目录
nsExec::Exec '${VCAM_INSTALL}' //执行相关的.bat文件 VCAM_INSTALL是个.bat文件的完整路径变量。
好了,这样就不会显示dos窗口了。
相关文章推荐
- 10 11周 补充 项目三
- SQL Server数据导入Redis的简单方法
- Spring的IoC原理
- VB用End退出,不会发生Form_Unload事件
- LeetCode:Longest Increasing Subsequence
- OpenCV3.1.0的calibrateCamera()函数计算相机内参数
- 二叉树的创建、销毁、各种递归、循环遍历方法(可运行测试)
- 解决Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COER
- smi接口介绍
- [ObjectC]Objective-C内存管理之---属性修饰词
- [Cacti] cacti监控Mongodb实战
- web.xml 中spring-servlet.xml 和 application.xml 配置位置及含义
- lua使用spSkeletonData创建SkeletonAnimation&lua-binding
- KVM虚拟化搭建nginx负载均衡 和lamp 架构(二 lamp安装)
- apache和tomcat单点配置
- 8255A与开关实现开关闭合,对应的发光二极管亮
- Consul Template的简单使用
- MSMQ
- initWithNibName&initWithCoder &awakeFromNib&UIView常见属性方法
- PAT (Advanced Level) 1048. Find Coins (25)