nsi脚本中执行.bat文件要隐藏dos窗口问题
問(wèn)題原因:工作中,在一個(gè)nsi的安裝腳本文件中需要安裝虛擬攝像頭驅(qū)動(dòng),安裝驅(qū)動(dòng)腳本是.bat文件。使用nsi的execwait函數(shù)執(zhí)行.bat文件時(shí)會(huì)顯示dos窗口。但是領(lǐng)導(dǎo)要求不能顯示dos窗口。
解決方法一:思路是看看bat腳本命令本身有沒(méi)有隱藏dos方法。但是沒(méi)有找到。后來(lái)發(fā)現(xiàn)可用用.vbs文件調(diào)用來(lái)隱藏。
創(chuàng)建一個(gè).vbs文件,寫入:createobject ("wscript.shell").run "a.bat",1,TRUE。使用.vbs文件來(lái)調(diào)用bat文件。windows下執(zhí)行時(shí)可以隱藏窗口的。但是發(fā)現(xiàn)在nsi腳本無(wú)法執(zhí)行.vbs文件。
所有方法一失敗了。
方法二:查看nsi本身帶有的exec執(zhí)行函數(shù)。
網(wǎng)上查看到有
1、ExecWait "$INSTDIR
sis.bat" //可以等待 不可以隱藏窗口
2、nsExec::Exec"$INSTDIR
sis.bat"http://可以等待 可以隱藏窗口
3、ExecShell Open "$INSTDIR
sis.bat" "" SW_HIDE // 不可以等待 可以隱藏窗口
4、ExecCmd::exec "$INSTDIR
sis.bat"http:// 不可以等待 可以隱藏窗口 ( Pop $0、ExecCmd::wait $0 等待)
我們需要等待bat文件返回,而且要隱藏窗口,那么可以用第二個(gè) nsExec::Exec函數(shù)。
nsExec::Exec函數(shù)是個(gè)nsis的nsExec.dll插件中的方法。所有需要在腳本文件中添加插件。
添加方法是
!addplugindir Plugins //添加nsis程序中附帶的插件庫(kù)目錄
nsExec::Exec '${VCAM_INSTALL}' //執(zhí)行相關(guān)的.bat文件 VCAM_INSTALL是個(gè).bat文件的完整路徑變量。
好了,這樣就不會(huì)顯示dos窗口了。
總結(jié)
以上是生活随笔為你收集整理的nsi脚本中执行.bat文件要隐藏dos窗口问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Bink Player
- 下一篇: find命令 &&文件后