亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學(xué)院 > 編程設(shè)計 > 正文

NSIS常見問題集錦 推薦新手參考學(xué)習(xí)

2020-07-14 13:40:35
字體:
供稿:網(wǎng)友
軟件下載地址 NSIS 2.45 簡體中文增強版
問:在安裝過程中按“取消”的話,會彈出是否終止安裝的確認窗口,請問怎樣設(shè)置可以讓這個窗口不要出現(xiàn),按“取消”就直接退出呢?

答:!define MUI_ABORTWARNING 把這句去掉就可以了。


問:如何將顯示的“setup 將安裝...”中的“setup”去掉,除了用自定義字串來修改這個地方以外,如何把這個setup搞成其  他的?比如“安裝程序現(xiàn)在將...”

答:DirText "安裝程序?qū)惭b $(^NameDA) 在下列文件夾。要安裝到不同文件夾,單擊 [瀏覽(B)] 并選擇其他的文件夾。     $_CLICK"

問:如何定義歡迎頁面的標題字體大小。

答:使用以下腳本

復(fù)制代碼
代碼如下:

!define MUI_PAGE_CUSTOMFUNCTION_SHOW ChageFONT
!insertmacro MUI_PAGE_WELCOME
Function ChageFONT
GetDlgItem $0 $MUI_HWND 1201
createFont $1 "Tahoma" "11" "700"
SendMessage $0 ${WM_SETFONT} $1 0

問:添加版本號

復(fù)制代碼
代碼如下:

VIProductVersion "1.2.3.4"
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Test Application"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "A test comment"
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Test Application is a trademark of Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "?Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Test Application"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "1.2.3"

問:在腳本中加入上面的代碼,則為 NSIS 生成的 exe 添加版本信息。問題就是,能否讓屬性中語言顯示為“中文(中國)”?

答:中文 ID 是 2052。 把 ${LANG_ENGLISH} 改為 2052。

問:用 2052 之后確實變成“中文(中國)”了。但其他內(nèi)容仍舊是亂碼,不知有什么辦法可以解決嗎?

答:版本信息設(shè)置語句,放在 !insertmacro MUI_LANGUAGE 的后面,NSIS 要注重次序的。如果使用古典界面,放在             LoadLanguageFile "${NSISDIR}/Contrib/Language files/SimpChinese.nlf" 的后面。

問:如何禁止顯示 banner 。

答:圖示的效果是因為安裝程序初始化的時候,也就是 .onInit 函數(shù)里需要用到某個文件的時候安裝程序需要搜索整個數(shù)據(jù)區(qū)塊    來把它解壓出來,當安裝程序比較大的時候搜索比較費時,這個時候才顯示解壓百分比。一般都是用 ReserveFile 來避開    這種搜索。比如 Function .onInit 里有:

復(fù)制代碼
代碼如下:

InitPluginsDir
File "/oname=$PLUGINSDIR/io.ini" "./io.ini"

或者其他類似的話,安裝程序就需要搜索并解壓這個文件。一般在腳本頭部加:

程序代碼

復(fù)制代碼
代碼如下:

ReserveFile "./io.ini"

這樣 io.ini 就保存在數(shù)據(jù)區(qū)塊的尾部,安裝程序初始化的時候就不用搜索整個數(shù)據(jù)區(qū)塊了,相當于加快了安裝程序的啟動    速度。


問:根據(jù)以上方法使用了,確實不會再出現(xiàn)初始化的對話框了,但是在自定義的 InstallOptions 頁顯示前,程序還是會停頓一 段時間,請問這是為何?如何避免?


答:某些控件比較消耗時間的,比如顯示 ICON、位圖 等,如果 InstallOptions 里含有這些控件可能會停頓。如果   InstallOptions 是第一個頁面的話還要把 InstallOptions.dll 加入到 ReserveFile 參數(shù)里。再或者就是進入InstallOptions 的時候含有比較復(fù)雜的指令,比如循環(huán)等。

一般在加入 ReserveFile ${NSISDIR}/Plugins/InstallOptions.dll 既可避免。

問:如何運行一個安裝文件 .inf

答:ExecWait "RunDll32 advpack.dll,LaunchINFSection skins.inf,DefaultInstall"

問:關(guān)聯(lián)文件圖標后,圖標沒變化。

答:刷新圖標用, System::Call shell32.dll::SHChangeNotify(l, l, i, i) v (0x08000000, 0, 0, 0)

問:我用NSIS做好了一個安裝程序,因為數(shù)據(jù)較多,一共有400多M,用的LZMA壓縮方式,做好后的安裝程序約200M,但是我發(fā)現(xiàn) 在運行這個安裝程序時會在系統(tǒng)TEMP目錄產(chǎn)生一個同安裝后的全部內(nèi)容同樣大的臨時文件(一邊運行一邊加大,最后到400多M去了),如果我做的程序小倒沒什么,可是這個程序有400多M,除了要寫入安裝的數(shù)據(jù)外還要同樣大小的空間放臨時文件,這樣子也實在是太花不來,我想請問:有什么辦法能讓其在安裝時不使用這么多的臨時空間嗎?安裝的腳本是用HM NISEdit的向?qū)傻摹?/font>

答:這是因為 NSIS 在用 LZMA 時采用了固實壓縮,何謂固實壓縮,其實就是把所有文件統(tǒng)一起來壓縮,所以這樣壓出來的文件  更加的小,同時也帶來了一個問題,安裝解壓的時候,在臨時文件夾中生成一個臨時文件,隨著安裝的進程逐漸增大,到最 后,需要臨時文件會變成跟原安裝程序一樣大,也就是說,需要原安裝程序 2 倍的空間才可以安裝這個程序,所以對于安裝大量文件時,這是不適合的。

NSIS 2.07 版本之前 LZMA 算法是固實壓縮的,沒有非固實的選項,如果需要這樣做,只有下載非固實壓縮的編譯器,但 2.07 后的 NSIS 的 LZMA 壓縮已經(jīng)改為默認非固實壓縮了,所以這個問題同時也不再存在。如果在制作少量文件的安裝時,仍然想取用固實壓縮可以加入 /SOLID 參數(shù)。

像這樣: SetCompressor /SOLID lzma


問:能不能在 Section 區(qū)段中實現(xiàn)讀取INI文件狀態(tài)來安裝。若選中單選框1則安裝1中定義的文件。若不選中則不安裝。若選中單選框2則安裝2定義的文件。若不選則不安裝。

答:使用以下代碼

復(fù)制代碼
代碼如下:

!include LogicLib.nsh
Section -post
SetOutPath $INSTDIR
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "info.ini" "Field 2" "State"
${If} $INI_VALUE = 1
File /a "./file/fileA.exe"
File /a "./file/fileB.exe"
${EndIf}
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "info.ini" "Field 3" "State"
${If} $INI_VALUE = 1
File /a "./file/fileA.exe"
${EndIf}
SectionEnd

 或者使用以下代碼

程序代碼

復(fù)制代碼
代碼如下:

!include LogicLib.nsh
Section -post
SetOutPath $INSTDIR
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "info.ini" "Field 2" "State"
${If} $INI_VALUE = 1
;選中時執(zhí)行的代碼
File /a "./file/fileA.exe"
File /a "./file/fileB.exe"
${Else}
;不選中時執(zhí)行的代碼
File /a "./file/fileA.exe"
${EndIf}
SectionEnd

問:在 NSIS 中如何設(shè)置工作目錄,例如一些文件的快捷方式,還有安裝完一個軟件后運行一個程序,而這個程序需要檢測當前工作目錄下的某個文件,這時候設(shè)置工作目錄尤為重要,否則程序不能正常運行。

答:NSIS 中設(shè)定工作目錄使用 SetOutPath,例如在運行程序的代碼 ExecWait "$INSTDIR/test2.exe" 前放入 SetOutPath  $INSTDIR,那么 $INSTDIR 將會成為當前的工作目錄,建立快捷方式也會把工作目錄設(shè)為 $INSTDIR。卸載之前運行某程序只需要把運行指令放到 Function un.onInit 里就行


問:記得以前看到有帖子介紹過可在NSIS中調(diào)用.inf文件安裝附加驅(qū)動程序,具體實現(xiàn)代碼如下形式:

復(fù)制代碼
代碼如下:

ExecWait "RunDll32 advpack.dll,LaunchINFSection drivers.inf,DefaultInstall"

問:偶在打包一小東東時使用了這一方法,但遇到的問題時,如果在卸載區(qū)段里設(shè)置能自動卸載安裝過的驅(qū)動程序呢?

答:能否卸載需要看 INF 文件里面是否有卸載的區(qū)段,例如使用 NSIS 卸載 Windows Messenger 可以這樣:


程序代碼

復(fù)制代碼
代碼如下:

ExecWait "RunDll32 advpack.dll,LaunchINFSection $windir/INF/msmsgs.inf,BLC.Remove"

 關(guān)于 BLC.Remove 的來源,可以打開 msmsgs.inf 文件后,能找到名稱為 BLC.Remove 的區(qū)段,該區(qū)段用于卸載。區(qū)段的    名稱是編寫者自己定制的。不同的inf文件,區(qū)段名也可能不同。其他的 *.inf 文件也可以按照此類做法。

問:(問題如下)
  1、我做了一個可同時在簡繁英下執(zhí)行的安裝程序。但有個很大的困惑。剛開始時做的是簡體中文版,在簡中下當然沒問題, 但在英/繁下,創(chuàng)建的中文程序組名和寫注冊表時顯示的是亂碼。于是想到寫一個三者皆適合的安裝程序。我的做法是這樣的,在涉及到創(chuàng)建中文程序組和寫注冊表時,加入一個判斷,如果英文或繁體,則分別創(chuàng)建英文文件名和big5內(nèi)碼文件名。但在繁體winxp和英文win2k下測試后,發(fā)現(xiàn)根本無法正常創(chuàng)建程序組,也無法正常生成uninstall.exe文件。而寫入注冊表的中文字符,也不能在繁體系統(tǒng)的注冊表中正常顯示,而是亂碼。請教高手,這種多語言環(huán)境下該怎么處理,才能正常顯示呢? 總不能全部都給創(chuàng)建成英文的吧?

  2、另外有個小問題,如何讓nsis做的安裝程序不顯示具體的安裝文件名,而只顯示“正在復(fù)制文件……”?象foobar那樣,可惜foobar也有個顯示詳細情況的按鈕,我想在復(fù)制文件過程中完全不顯示和提示被復(fù)制的文件情況。


答:(解答如下)

  1、最簡單的處理辦法就是給需要處理的資源進行一個定義,然后使用 LangString 定義不同的資源。給個示例:


程序代碼

復(fù)制代碼
代碼如下:

Caption "$(CAPTION)"
LangString CAPTION ${1033} "DreamMail Installation"
LangString CAPTION ${2052} "DreamMail 安裝向?qū)?
LangString CAPTION ${1028} "DreamMail 宅男视频免费在线观看视频| 在线一区二区三区视频| 欧美午夜激情视频| 亚洲人成电影在线观看网| 国产成人免费9x9x人网站视频| 中文字幕久久综合| 国产精品国产三级国产aⅴ9色| 亚洲色图av在线| 大黑人xxx| 精品一区二区中文字幕| www黄com| 国产精品九九九九九| 在线你懂的视频| 在线观看免费污视频| 欧美日本在线看| 久久se精品一区精品二区| 日韩精品一区二区三区色欲av| 99九九热只有国产精品| 5566中文字幕一区二区电影| 日本aⅴ亚洲精品中文乱码| 欧美精品日日鲁夜夜添| 国产精品白浆一区二小说| 欧美精品二区三区四区免费看视频| 日本高清不卡在线| 欧美丰满少妇xxxxx做受| 不卡视频在线| 一区二区三区视频在线| 国产精品美女久久久久久久久| 国模精品娜娜一二三区| 亚洲第一页中文字幕| 婷婷激情四射网| 日韩电影视频免费| 久久精品日产第一区二区| 欧美大尺度在线观看| 亚洲精品欧美专区| 偷拍一区二区| 欧美一级艳片视频免费观看| 欧美网站在线观看| 日韩综合精品| 国内精品久久久久久久97牛牛| 成 人免费视频播放| 午夜伦理在线视频| 欧美特黄a级高清免费大片a级| 51ⅴ精品国产91久久久久久| 天天干天天色天天干| 亚洲 欧美 另类人妖| 黄色精品免费看| 日本女优爱爱视频| 欧美性大战久久久久久久蜜臀| 日韩三级影院| 欧美美女一区二区三区| 日韩欧美成人精品| 免费成人在线网站| 国产永久免费观看| 婷婷精品在线| 欧日韩不卡在线视频| 国产精品三级美女白浆呻吟| 欧美国产综合一区二区| 亚洲最新在线视频| av电影高清在线观看| 亚洲aaa精品| 一级片视频播放| 国产综合 伊人色| a级免费视频| 久久久久久久久四区三区| 黄色网页在线免费看| 蜜臀久久99精品久久久画质超高清| free性欧美高清另类| 亚洲免费不卡| 免费av一级片| 亚洲а∨天堂久久精品喷水| 欧美日韩国产综合视频在线| 老司机久久精品| 成人午夜在线影视| 久久福利影视| 一区二区视频在线观看| 亚洲国产欧美日韩精品| 国模一区二区三区| 午夜激情影院在线观看| 精品日本视频| 欧美区在线观看| 国产日产欧产精品推荐色| 亚洲一区二区在线播放相泽| 久操久操久操| 国产成人精品久久一区二区小说| 天天影院图片亚洲| 日本欧美一区二区三区乱码| 青青久在线视频免费观看| 精品国产人妻一区二区三区| 国产精品成人一区二区不卡| 丰满岳乱妇一区二区| 亚洲五码在线| 四虎成人av| 97精品国产97久久久久久春色| 精品黑人一区二区三区| 欧美色黄视频| 中文字幕不卡免费视频| 国产mv日韩mv欧美| 性xxxxxxxxx18欧美| 香蕉成人啪国产精品视频综合网| eeuss影院www免费看| 嫩草影院一二三| 中文字幕乱码亚洲精品一区| 99热在这里有精品免费| 国产熟女高潮视频| 久热这里有精品| 中文字幕免费视频观看| 999久久久免费精品国产牛牛| 成年网址网站在线观看| 在线黄色av| 番号集在线观看| 中文字幕在线看视频国产欧美在线看完整| 亚洲精品福利在线观看| 黄色网络在线观看| 超污网站在线观看| 亚洲成人免费观看| 精品三级在线| 成人妇女免费播放久久久| 五月天婷婷在线观看视频| 日韩精品一区二区三区视频在线观看| 人成免费在线视频| 国产日本欧美在线观看| 精品一区日韩成人| 久久精品国产精品亚洲精品色| 成人黄视频在线观看| 欧美激情精品久久久久久免费| 香蕉久久精品| 亚洲成人午夜在线| 亚洲深夜福利网站| 欧美精品少妇videofree| 成人国产激情| 国产精品免费视频xxxx| 久久av高潮av无码av喷吹| 四虎免费播放| 蜜桃视频在线观看www社区| 色婷婷成人综合| 香港日本韩国三级网站| 日韩欧美中文| 男女下面一进一出无遮挡| 最好看的2019的中文字幕视频| 欧美日韩亚洲国产| 色狠狠综合天天综合综合| www.com欧美| 久久女同性恋中文字幕| 国产情侣第一页| 国产视频二区在线观看| 22288色视频在线观看| 婷婷在线观看视频| 一色桃子久久精品亚洲| 日韩成人在线视频网站| 国产一区二区免费| 欧美一区二区三区人| 一区二区三区免费在线看| 国产一区二区0| 理论在线观看| 午夜av在线播放| 综合另类专区| 国产精品色悠悠| 国产盗摄xxxx视频xxx69| 中文字幕av片| 成人在线视频观看| 亚洲三级网页| 玖玖精品在线视频| 国产欧美日产一区| 国产免费无码一区二区| 中文字幕亚洲一区二区va在线| 美女扒开大腿让男人桶| 色噜噜久久综合| 无码人妻精品一区二区中文| 诱人的瑜伽老师3hd中字| 九七影院理论片| 91午夜伦伦电影理论片| 中国精品18videos性欧美| 2017亚洲男人天堂| 97精品久久久中文字幕免费| 你懂的网址一区二区三区| 韩日欧美一区| 国产黑人绿帽在线第一区| 国模精品视频一区二区| 欧美国产亚洲视频| 欧美日本不卡高清| 亚洲欧洲精品在线| 海角社区69精品视频| 久久精品视频一区二区三区| 日本年轻的继坶中文字幕| 欧美在线国产精品| 激情五月综合| 97久久超碰国产精品| 色婷婷狠狠18| 中文在线最新版天堂| 涩涩屋成人免费视频软件| www.视频在线.com| 成人不用播放器| 日本在线视频播放| 国产亚洲人成a一在线v站| 日韩大胆人体| 日本精品入口免费视频| 亚洲精品无遮挡| 福利写真视频网站在线| 亚洲成人第一页| 黄色av网址在线免费观看| 精品国产91乱码一区二区三区四区| 国产伦精品一区二区三区照片91| 成人影院在线播放| 一区二区在线中文字幕电影视频| 一区二区三区在线视频111| 国色天香一二三期区别大象| 女人天堂亚洲aⅴ在线观看| 日韩电影大片中文字幕| 日本高清中文字幕在线| 色综合欧美在线视频区| 丝袜老师办公室里做好紧好爽| 无码人妻精品一区二区三应用大全| 99热播在线观看| 日韩一区二区a片免费观看| 国产精品成人国产乱一区| 国产欧美在线观看| 最新天堂中文在线| 久久人人爽人人爽人人片av高清| 中文字幕在线观看免费视频| 欧美二区在线视频| 欧美日韩国产在线看| 一区二区不卡在线视频 午夜欧美不卡在| 午夜激情一区| 午夜剧场成人观在线视频免费观看| 无码人妻丰满熟妇精品| 国产偷人妻精品一区二区在线| 欧美乱大交xxxxx潮喷l头像| 国产成人亚洲精品狼色在线| 国产亚洲精品久久| 1卡2卡3卡精品视频| 在线免费视频福利| 中文字幕色网站| 亚洲影视九九影院在线观看| 国产日韩欧美91| 精品免费视频一卡2卡三卡4卡不卡| 亚洲成**性毛茸茸| 国产午夜精品理论片a级大结局| 91国偷自产一区二区三区观看| 亚洲国产日韩欧美在线图片| 亚洲欧美综合图片| 69精品视频| 真人做人试看60分钟免费| 久久国产视频网站| 亚洲一区在线电影| 精品久久精品久久| av激情综合网| 亚洲成年人专区| 嫩草视频在线观看| 亚洲天堂手机在线| 色青青草原桃花久久综合| 日本一区二区免费高清视频| 久久本道综合色狠狠五月| 国产精品久久久久久久小唯西川| 狠狠操天天操夜夜操| 久久精品国产亚洲777| 欧美日韩尤物久久| 蜜桃精品成人影片| 夜间精品视频| 91在线观看欧美日韩| 欧美精品一区二区三区三州| 美女一区二区视频| 午夜久久久久久久久久久| 日韩女优在线视频| 黄瓜视频在线免费观看| 国产精品一区二区久久精品爱涩| www.五月激情| 99久久免费看精品国产一区| 国产寡妇亲子伦一区二区| 日本激情视频在线播放| 国产精品久久久爽爽爽麻豆色哟哟| 免费一级欧美片在线观看网站| 久久一区二区三区四区五区| 理论片午夜视频在线观看| 国产精品自拍小视频| 久久99这里只有精品| 看免费黄色录像| 国产在线视频自拍| 日本天堂中文字幕| 佐山爱在线视频| 亚洲欧美日韩在线观看a三区| 亚洲视频在线观看一区二区| 中文字幕永久有效| 色婷婷综合激情| 99精品视频精品精品视频| 666av成人影院在线观看| 狠久久av成人天堂| 久久精品xxx| 欧美xxxx性xxxxx高清视频| 女人爱爱视频| 久久国产露脸精品国产| 欧美麻豆久久久久久中文| 欧美俄罗斯性视频| 三级影片在线观看欧美日韩一区二区| 国产又爽又黄无码无遮挡在线观看| 最新版天堂资源中文官网| 中文产幕区在线观看| 日韩美女黄色片| 日本欧美大码aⅴ在线播放| 国产免费一区二区三区在线观看| 日韩理论在线观看| 综合蜜桃精品| 黄色在线资源| 欧美日韩黄色影视| 国产欧美日韩精品高清二区综合区| 九色91视频| 欧美日韩在线网站| 亚洲人成在线观看一区二区| 日韩视频在线观看| 明星乱亚洲合成图.com| 91系列在线播放| 试看120秒一区二区三区| 中文字幕在线观看一区二区| 在线播放你懂得| 丁香一区二区三区| аⅴ天堂中文在线网| 青娱乐免费在线视频| 五十度飞在线播放| 亚洲精品男人天堂| 97理论电影| 人人香蕉久久| 一本一本久久a久久精品综合麻豆| 亚洲区小说区| 蜜桃av久久久亚洲精品| 欧美激情三级免费| 欧美一三区三区四区免费在线看| 日本在线小视频| 欧美黑人经典片免费观看|