日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

一. NSIS介绍

發(fā)布時(shí)間:2023/12/10 编程问答 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一. NSIS介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

最近需要寫(xiě)一個(gè)安裝程序,比對(duì)了一下現(xiàn)有的安裝工具,最后選定了NSIS,最主要的原因一是開(kāi)源、二是靈活。

下面把我的要求簡(jiǎn)單列舉下:

1、需要檢查系統(tǒng)環(huán)境是否滿足要求

2、需要界面友好的安裝過(guò)程

3、需要一些自定義界面,在安裝過(guò)程中來(lái)獲取一些必須的信息

4、需要根據(jù)界面的選擇來(lái)執(zhí)行或跳過(guò)一些安裝過(guò)程

5、需要操作數(shù)據(jù)庫(kù)

6、需要操作IIS

7、需要使用PowerShell命令設(shè)置AD/Exchange/Lync

8、需要操作注冊(cè)表,用于標(biāo)識(shí)安裝步驟以用于卸載或回滾的執(zhí)行

經(jīng)過(guò)調(diào)查發(fā)現(xiàn)NSIS都能實(shí)現(xiàn),但它有自己的一套腳本語(yǔ)言,需要學(xué)習(xí)成本,如果有編程基礎(chǔ)這個(gè)其實(shí)不難,下載一個(gè)“NSIS用戶手冊(cè)”、一個(gè)"NSIS"(腳本編譯)、一個(gè)“HM NIS Edit”(腳本編輯)一切就可以開(kāi)始啦!

基本知識(shí)

那么首先,我們先看一下“NSIS用戶手冊(cè)”吧,你總得先了解一下NSIS這個(gè)東西的基本介紹和腳本的基本結(jié)構(gòu)吧。

我把了解的最重要的東西列舉一下,其他涉及到細(xì)節(jié)或遇到難題就可以隨時(shí)查詢用戶手冊(cè)或者google萬(wàn)能的網(wǎng)絡(luò):

1、安裝程序的主體腳本文件 .nsi,可以包含一個(gè)或多個(gè)頭文件 .nsh

頭文件可以通過(guò)把它劃分為一個(gè)或多個(gè)代碼塊來(lái)幫你編排你的腳本,你也可以在頭文件里加入功能函數(shù)或宏,并且在多個(gè)安裝程序里包含頭文件,這樣可以更容易的升級(jí)你的程序,并且使你的腳本很容易的讓人看懂。

2、一個(gè)安裝程序的基本結(jié)構(gòu)包含應(yīng)用程序的基本信息定義、頭文件引用、安裝程序?qū)傩栽O(shè)置、安裝程序頁(yè)面、區(qū)段(安裝過(guò)程腳本)和函數(shù)(安裝頁(yè)面創(chuàng)建之前、顯示前和離開(kāi)前的代碼)等

應(yīng)用程序的基本信息定義:產(chǎn)品的名稱(chēng)、版本、發(fā)布者、網(wǎng)站等信息;頭文件引用:!include ***.nsh;

安裝程序?qū)傩栽O(shè)置:安裝程序語(yǔ)言、安裝程序名稱(chēng)、輸出安裝文件、默認(rèn)安裝目錄等信息;

安裝程序頁(yè)面:內(nèi)建頁(yè)面(歡迎頁(yè)面、許可頁(yè)面、目錄選擇頁(yè)面、組件選擇頁(yè)面、安裝記錄頁(yè)面、完成頁(yè)面)、自定義頁(yè)面;

區(qū)段:安裝程序執(zhí)行的實(shí)體,每一個(gè) NSIS 安裝程序包含一個(gè)或多個(gè)區(qū)段;

函數(shù):最終要的是頁(yè)面的回調(diào)函數(shù)(每個(gè)內(nèi)建頁(yè)面有三個(gè)回調(diào)函數(shù)(預(yù)置函數(shù)、顯示創(chuàng)建函數(shù)和離開(kāi)函數(shù))、自定義的頁(yè)面僅有兩個(gè)回調(diào)函數(shù)(創(chuàng)建函數(shù)和離開(kāi)函數(shù)))、

再就是安裝的回調(diào)函數(shù)(.onInit、.onInstFailed、.onInstSuccess等)、還可以有一些自定義的函數(shù);

3、保存值和使用值

可以使用Var命令來(lái)聲明變量,使用變量來(lái)保存值,所有定義的變量都是全局的,即使在區(qū)段或函數(shù)內(nèi)定義。所以你可以聲明變量、代碼中對(duì)變量進(jìn)行各種操作(賦值、比較、字符串操作等,使用變量需要加$),下面一個(gè)簡(jiǎn)單的例子:

Var str1 Var hasValue Function StrOperStrCpy hasValue False ; $hasValue = False${If} $hasValue == TrueMessageBox MB_OK "$str1"${EndIf}StrCpy $str1 "Hello," ; $str1 = Hello,StrCpy $str1 "$str1World" ; $str1 = Hello,WorldStrCpy hasValue True ; $hasValue = True${If} $hasValue == TrueMessageBox MB_OK "$str1"${EndIf} FunctionEnd

?另外一個(gè)保存值的方式是放入堆棧中,堆棧都知道是“先進(jìn)后出”的,最重要的兩個(gè)命令就是Push和Pop,下面一個(gè)簡(jiǎn)單的例子:

Var str1 Function StackOperPush "Hello"Pop $str1 ; $str1 = HelloPush "$str1 World" Pop $str1 ; $str1 = Hello WorldMessageBox MB_OK "$str1" FunctionEnd

NSIS腳本有一些內(nèi)置的變量,如:$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $R0, $R1, $R2, $R3, $R4, $R5, $R6, $R7, $R8, $R9;這些變量可以像用戶變量一樣使用,但不用聲明這些變量;另外還有一些特殊含義的內(nèi)置變量,如:$INSTDIR、$OUTDIR等。

NSIS腳本還有一些常量,如:$PROGRAMFILES,$DESKTOP,$WINDIR,$STARTMENU,$EXEDIR等等,有需要可以查看幫助文檔。

4、指令

NSIS腳本的執(zhí)行是依靠一個(gè)個(gè)的指令,這些指令包括字符串操作指令、數(shù)學(xué)操作指令、文件操作指令、注冊(cè)表讀寫(xiě)指令、用戶界面指令、流程控制指令等等,具體指令可以隨時(shí)查看用戶手冊(cè),另外你還可以通過(guò)插件來(lái)擴(kuò)展它的能力,這些插件通常是一個(gè)DLL文件,關(guān)于插件以后章節(jié)會(huì)詳細(xì)說(shuō)明。

以上,我們通過(guò)快速瀏覽NSIS用戶手冊(cè),了解了腳本的基本結(jié)構(gòu)和基本語(yǔ)法方面的信息。下面,我們需要搭建NSIS的開(kāi)發(fā)和編譯環(huán)境。

編譯環(huán)境

下載了NSIS最新的安裝包,根據(jù)向?qū)б徊讲桨惭b即可,安裝完成后會(huì)在系統(tǒng)目錄上有NSIS目錄,里面就有用戶手冊(cè)和一些腳本例子,另外就是在腳本文件.nsi點(diǎn)擊右鍵會(huì)出來(lái)NSIS快捷菜單,如下圖所示:

編輯/IDE工具

編譯環(huán)境都好了,接下來(lái)就該說(shuō)到編輯腳本的工具了,最簡(jiǎn)單的是用文本文件,其實(shí)任何可以編輯文本文件的工具都可以,但一是沒(méi)有任何格式不好看,再就是對(duì)于一個(gè)才開(kāi)始編輯NSIS腳本的新手來(lái)說(shuō)一頭霧水,不知從何下手啊,好了,工具來(lái)了,下載HM NIS Edit最新版本,這是一個(gè)針對(duì)NSIS的免費(fèi)的編輯/集成開(kāi)發(fā)工具,安裝后就可以使用啦,我能告訴你它不光讓腳本更容易讀寫(xiě),最最打動(dòng)我的其實(shí)是它的新建腳本向?qū)Чδ?#xff0c;我在無(wú)從下手時(shí)通過(guò)向?qū)傻哪_本省了很多工夫,也通過(guò)這些腳本更深刻的理解了腳本的結(jié)構(gòu)和一些語(yǔ)法信息,再就是通過(guò)菜單NSIS可以直接編譯腳本,腳本編譯過(guò)程的輸出信息會(huì)在輸出界面顯示,錯(cuò)誤直接定位,界面如下所示:

好了,基本介紹啰啰嗦嗦這么多,應(yīng)該有點(diǎn)記憶了吧,下章我們就從制作一個(gè)簡(jiǎn)單的NSIS安裝包開(kāi)始吧!

總結(jié)

以上是生活随笔為你收集整理的一. NSIS介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。