<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Picses' sky

    Picses' sky
    posts - 43, comments - 29, trackbacks - 0, articles - 24

    轉(zhuǎn)自:http://www.hanzify.org/teach/index.php?Go=Show::196-1108396800

    NSIS簡介:

      NSIS 是“Nullsoft 腳本安裝系統(tǒng)”(Nullsoft Scriptable Installation System)的縮寫,它是一個(gè)免費(fèi)的 Win32 安裝、卸載系統(tǒng),它的特點(diǎn):腳本簡潔高效;系統(tǒng)開銷小;當(dāng)然進(jìn)行安裝、卸載、設(shè)置系統(tǒng)設(shè)置、解壓文件等等更不在話下,幾乎可以做所有的事情。更多的功能請(qǐng)閱讀藍(lán)色網(wǎng)際的《NSIS幫助文檔》。
      對(duì)于制作NSIS的使用教程,藍(lán)色網(wǎng)際是NSIS方面的專家,她的《NSIS幫助文檔》就是一本NSIS的圣經(jīng),而對(duì)初學(xué)者來說,最頭疼的莫過于一大堆看不懂的代碼,對(duì)他們來說無異于一本天書。緣于此,特草此基礎(chǔ)教程,希望NSIS專家們勿見笑,不當(dāng)之處歡迎批評(píng)指正以期完善,也希望給初學(xué)者作個(gè)鋪墊。

    工具:
      NIS Edit+Nullsoft Installation System(NSIS)
      [此兩款軟件都可以到世紀(jì)主站上下載到]

    思路:腳本向?qū)В薷拇a=個(gè)性化安裝包

    步驟

    I.利用向?qū)е谱靼惭b包:

    1.安裝上述兩款,啟動(dòng)NIS Edit,在“文件”菜單中“新建腳本:向?qū)?#8221;=>下一步”,如圖1:

    附圖
    附圖

    2.設(shè)置應(yīng)用程序信息,如軟件名稱、版本、出版人等,如圖2。
    當(dāng)然最一個(gè)網(wǎng)站可以留空,如果設(shè)置了,則安裝包會(huì)生成一個(gè)對(duì)應(yīng)網(wǎng)址的“Internet 快捷方式”。

    附圖
    附圖

    3.設(shè)置程序選項(xiàng),如安裝包圖標(biāo)、安裝程序文件、安裝包語言[這里選“SimChinese”]、用戶圖形界面及壓縮方式等,
    我們可以選用默認(rèn)值,也可以點(diǎn)擊對(duì)應(yīng)項(xiàng)目的按鈕或下拉菜單更改設(shè)置,如下圖3

    附圖
    附圖

    4.設(shè)置安裝目錄及授權(quán)信息,如圖4后“下一步”:

    附圖
    附圖

    5.選定程序文件,即我們要打包的文件,可以使用默認(rèn)的“Mainsection”,
    也可以根據(jù)需要進(jìn)行更改或新建組別,
    如果組比較多時(shí),
    你也可以設(shè)置是否“允許用戶選擇要安裝的組件”,如圖5。

    附圖
    附圖

    完畢后進(jìn)行“添加文件”操作,選定我們要打包的文件,如圖6,
    完成自動(dòng)后返回的圖5的界面,執(zhí)行下一步操作。

    附圖
    附圖

    6.設(shè)置開始菜單中文件夾名稱及快捷方式,這里我們使用默認(rèn)值,如圖7,按“下一步”:

    附圖
    附圖

    7.指定安裝后要運(yùn)行的程序,同上用默認(rèn)值并設(shè)置相關(guān)運(yùn)行參數(shù)及描述,
    如果你和我一樣懶的話,或不想在安裝運(yùn)行任何程序,則留空即可,如圖8:

    附圖
    附圖

    8.這步是有關(guān)卸載程序的相關(guān)信息,如卸載時(shí)的提示、卸載的圖標(biāo)等,如圖9

    附圖
    附圖

    9.至此完成向?qū)В鐖D10,,鉤選“保存腳本”、“轉(zhuǎn)換文件路徑到相關(guān)路徑”及“編譯腳本”

    附圖
    附圖

    提示保存腳本路徑并自動(dòng)編譯腳本,我們可以按或F9運(yùn)行安裝程序進(jìn)行預(yù)覽,向?qū)Мa(chǎn)生的安裝包效果圖如圖11所示:


    附圖
    附圖

    II.修改代碼以個(gè)性化安裝包:

    10.選擇可修改之處:

    1)軟件LOGO[如圖11A]、安裝包標(biāo)題[圖11B]、圖11C、圖12、圖13

    圖11見上樓

    圖12如下

    附圖
    附圖

    圖13如下

    附圖
    附圖

    2)閃屏界面

    11.修改代碼

    1) 修改軟件LOGO:在源代碼“ MUI Settings”后面添加下列代碼:

     

     
    以下是代碼片段:
    !define MUI_WELCOMEFINISHPAGE_BITMAP "G:\temp\ pwr.bmp"

     


      注釋:引號(hào)內(nèi)為位圖的路徑,位圖大小大約為165*298

      效果圖如圖14所示

    附圖
    附圖
     
    2)修改安裝包標(biāo)題,在同上位置添加下列代碼:
     
     
    以下是代碼片段:
    !define MUI_WELCOMEPAGE_TITLE "\r\n PDF2all 5.35d 漢化版"
      
      注釋:\r\n為換行標(biāo)志
      
      效果圖上樓如圖14所示

    3)修改圖11C中的說明,同上位置添加下列代碼:
     
    以下是代碼片段:
    !define MUI_WELCOMEPAGE_TEXT "  pdf2all是一個(gè)轉(zhuǎn)換器的集合,它能轉(zhuǎn)換包括doc2pdf (Word to PDF),xls2pdf (Excel Sheet到PDF),ppt2pdf(PowerPoint到PDF),mdb2pdf (Access到PDF),ps2pdf(PostScript到PDF),pdf2jpg(PDF到JPEG),pdf2bmp(PDF到BMP),pdf2tiff(PDF到TIFF),pdf2eps(PDF到EPS),pdfMerge(合并PDF文件),pdf2ppt(PDF到PowerPoint)。\r\n\r\n  軟件漢化:高芳鑾 (Raindy)\r\n\r\n  $_CLICK"

      
      效果圖如圖14所示
     
    4)對(duì)圖12中的修改,在源代碼:
     
    以下是代碼片段:
    ShowInstDetails show
    ShowUnInstDetails show


    后添加:
     
    以下是代碼片段:
    BrandingText " 軟件漢化:高芳鑾 (Raindy)"


    效果圖如圖15所示

    附圖
    附圖
     
    5)在完成添加“漢化說明”,只要在源代碼:
     
    以下是代碼片段:
    ; Finish page

    后添加:
     
    以下是代碼片段:
    !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\漢化說明.txt"
    !define MUI_FINISHPAGE_SHOWREADME_TEXT "漢化說明"

    效果所示

    附圖
    附圖
     
    6)閃屏界面,可以在源代碼中加入下列代碼即可:
    A、普通效果
     
    以下是代碼片段:
    Function .onInit
    SetOutPath $TEMP
    File /oname=spltmp.bmp "G:\Temp\Nsisres\splash.bmp"

    splash::show 2300 $TEMP\spltmp

    Pop $0

    FunctionEnd


    效果圖如此軟件下載:pdf2all-setup.rar
    B、漸隱閃屏
     
    以下是代碼片段:
    Function .OnInit
    InitPluginsDir
    File /oname=$PLUGINSDIR\splash.bmp "G:\Temp\Nsisres\splash.bmp"
    advsplash::show 1500 800 600 -1 $PLUGINSDIR\splash
    Functionend



    7)背景音樂[貫穿安裝過程]

     
    以下是代碼片段:
    Var hmci
    Function .OnInit
    InitPluginsDir
    SetOutPath $PLUGINSDIR
    File "G:\Temp\Nsisres\music.mp3"             [說明:源MP3的存放路徑]
    System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\music.mp3") i .r0
    SendMessage $0 0x0465 0 "STR:play repeat"
    System::Call user32.dll::ShowWindow(i r0, i 0)
    StrCpy $hmci $0
    Functionend

    Section
    ;add your codes
    SendMessage $hmci 0x0010 0 0
    Sectionend

    后語:

    以上僅是NSIS制作安裝包最基本的操作,供初學(xué)者入門之用,故云“初級(jí)篇”。
    希望不會(huì)怡笑大方,更希望藍(lán)MM、陳敏毅老大等NSIS高手的中高級(jí)教程:)

    相關(guān)資料下載[以Pdf2allV5.35d為例,可直接點(diǎn)擊下載]

      全文的Word文檔附在附件中
    NSIS.rar
     
    偶以Pdf2allV5.35d為例,
    制作了安裝包制作動(dòng)畫演示

    [可直接點(diǎn)擊下載]

    相關(guān)文件列表如下:
    動(dòng)畫演示 [pdf2all-movie.exe]

    安裝包的NSIS腳本代碼 [PDF2all-nsis.nsi.txt]

    成品的安裝包 [pdf2all-setup.exe]

    常見修改的代碼 [code.txt]

    NSIS基礎(chǔ)教程CHM版 [NSIS安裝制作基礎(chǔ)教程(CHM格式)-特別感謝tracky]

    感謝chenmy老大提供空間:)

    偶的閃屏圖:


    附圖
    附圖
     

    下面摘引一些論壇的討論,原帖點(diǎn)擊進(jìn)入
    漸現(xiàn)漸隱的代碼:
     
    以下是代碼片段:
    Function .OnInit
    InitPluginsDir
    File /oname=$PLUGINSDIR\splash.bmp c:\test.bmp
    advsplash::show 1500 800 600 -1 $PLUGINSDIR\splash
    Functionend



    背景音樂(貫穿安裝全過程):
     
    以下是代碼片段:
    Function .OnInit
    InitPluginsDir
    SetOutPath $PLUGINSDIR
    File "c:\a.mp3"
    System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\a.mp3") i .r0
    SendMessage $0 0x0465 0 "STR:play repeat"
    System::Call user32.dll::ShowWindow(i r0, i 0)
    StrCpy $hmci $0
    Functionend

    Section
    ;add your codes
    SendMessage $hmci 0x0010 0 0
    Sectionend



    背景音樂2:
     
    以下是代碼片段:
    Section/Function
    SetOutPath $PLUGINSDIR
    File $WINDIR\MEDIA\chimes.wav
    BgImage::Sound /NOUNLOAD /WAIT "$PLUGINSDIR\chimes.wav"
    BgImage::Clear /NOUNLOAD
    Sectionend/Functionend


    最后一種方法使用了 bgimage 插件,安裝程序執(zhí)行到該插件時(shí)會(huì)等待 wav 播放完再繼續(xù)執(zhí)行。
     
    raindy
    謝謝dujuan509兄
    如果閃屏效果[漸隱]+背景音樂[全程]放在一起
    那代碼該如何修改?
    偶兩者無法兼得 
    望不吝賜教 
     
     
    以下是代碼片段:
    outfile test.exe
    Var hmci

    Function .OnInit
    InitPluginsDir
    SetOutPath $PLUGINSDIR
    File "c:\a.mp3"
    System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\a.mp3") i .r0
    SendMessage $0 0x0465 0 "STR:play repeat"
    System::Call user32.dll::ShowWindow(i r0, i 0)
    StrCpy $hmci $0

    File /oname=$PLUGINSDIR\splash.bmp c:\test.bmp
    advsplash::show 1500 800 600 -1 $PLUGINSDIR\splash

    Functionend

    Section
    ;add your codes
    sleep 5000
    SendMessage $hmci 0x0010 0 0
    Sectionend

     

    raindy
    謝謝dujuan509兄
    已經(jīng)學(xué)會(huì)了:)
    可惜背景音樂只能支持MP3格式
    如果能支持midi等就好了 

    藍(lán)色網(wǎng)際
    MIDI 請(qǐng)參考這個(gè) DEMO

    附件  
      midi.zip


     藍(lán)色網(wǎng)際

    推薦一個(gè) NSIS 的快速編輯器 - NotePad2。雖然不是 NSIS 專門編輯器不過有時(shí)候比 Venis 方便,因?yàn)?Venis 不支持文本塊操作,而且 Venis 對(duì)語法高亮做得不是很好。NotePad2 的語法高亮是根據(jù)后綴名來確定的,只要你打開 NSI 文件不用任何設(shè)置就會(huì)自動(dòng)語法高亮。
    其實(shí) NotePad2 作為記事本替代者也非常不過,界面非常相似,而 NotePad2 功能強(qiáng)大了好多。
    你可以在 http://foobar.nease.net/nsis/np2.exe 下載我修改的版本,主要補(bǔ)全了 NSIS 語法高亮,原版由于很久沒更新 NSIS 的語法高亮代碼,所以有一些新增的 NSIS 指令不能高亮顯示。
    并作了一些優(yōu)化,做要是讓它更像記事本

    貼個(gè)圖:

    附圖
    附圖
    dujuan509

    引用 (zkdpower @ 2005年01月25日 23時(shí)08分)
    我想問一下各位,如何把安裝頁面中的“Setup將安裝……”中的Setup改成別的字

    你指的是選擇安裝目錄頁面的提示文字吧?

    只需在

     

     
    以下是代碼片段:
    !insertmacro MUI_PAGE_DIRECTORY 

     


    前面添加一行:

     

     
     
    以下是代碼片段:
    !define MUI_DIRECTORYPAGE_TEXT_TOP "你需要的文字"

     

    藍(lán)色網(wǎng)際
     

    引用 (zjj1988101 @ 2005年01月26日 09時(shí)49分)
    引用 (藍(lán)色網(wǎng)際 @ 2005年01月26日 09時(shí)03分)
    用 NSIS 2.03 的吧,那個(gè)版本簡體語言符合我們的習(xí)慣。

    請(qǐng)教藍(lán)前輩~
    NSIS的閃屏圖片的格式支持幾種格式?
    只支持位圖嗎?可以支持其他圖片格式嗎?

     


    這個(gè)插件支持 JPG、GIF

    附件   newadvsplash.zip

    藍(lán)色網(wǎng)際
     

    raindy 有時(shí)間的話看看我這個(gè)漢化補(bǔ)丁的 NSIS 腳本,然后寫一篇教程,嘿嘿,寫東西你比較拿手 

    基本上包括了做補(bǔ)丁包含的大部分情況:
    自動(dòng)查詢?cè)孳浖惭b目錄并包含目錄修正
    原版軟件的備份和恢復(fù),以及漢化補(bǔ)丁的卸載
    對(duì)原版進(jìn)行 MD5 校驗(yàn)
    把漢化補(bǔ)丁應(yīng)用到原版軟件不同版本
    注冊(cè)表的修正,主要是右鍵菜單
    數(shù)據(jù)庫的漢化
    讀取、修改、寫入注冊(cè)表二進(jìn)制類型數(shù)據(jù)


    NSIS 做補(bǔ)丁的優(yōu)點(diǎn)是生成文件比較小,而且還可以包含 N 個(gè)版本的補(bǔ)丁

    附件  
      hb-acdsee7_pub[1].nsi.zip


    raindy

    引用 (水木魚 @ 2005年01月27日 17時(shí)10分)
    請(qǐng)問題頭的圖標(biāo)是怎么加的

    設(shè)置了自定義安裝圖標(biāo)就會(huì)自動(dòng)顯示的,不需要另外添加,自定義安裝圖標(biāo):

     

     
    以下是代碼片段:
    !define MUI_ICON "G:\Temp\Nsisres\PDFsetup.ico"

     



    這一點(diǎn)和INNO不同,INNO中則需要在[setup]中設(shè)置:

     

     
    以下是代碼片段:
    WizardSmallImageFile=G:\軟件測(cè)試\嘗試漢化\安裝包\PDF2all\sm.bmp

     

    其他需要個(gè)性化的地方,建議閱讀一下藍(lán)色網(wǎng)際翻譯的NSIS幫助文檔
     

    zkdpower

       請(qǐng)問各位如何改這些
    第一個(gè)就是如何把插入的headerimage圖片放到右邊(默認(rèn)是在左邊)
    第二個(gè)就是把headerimage上面的字改掉
    謝謝

    附圖
    附圖

    dujuan509
    1、在腳本開頭增加一行:

     
    以下是代碼片段:
    !define MUI_HEADERIMAGE

     


    2、在 !insertmacro MUI_PAGE_LICENSE "c:\License.txt"前增加兩行:

     

     
    以下是代碼片段:
    !define MUI_PAGE_HEADER_TEXT 111
    !define MUI_PAGE_HEADER_SUBTEXT 222

     


    藍(lán)色網(wǎng)際
    你還是先看看 MUI 文檔吧,界面的設(shè)置都作了說明
    http://foobar.nease.net/nsis/mui/index.html


      zkdpower

    請(qǐng)問藍(lán)色網(wǎng)際,在你的MUI 文檔中有
    “MUI_HEADERIMAGE_RIGHT
    令本應(yīng)顯示于左邊的頁眉圖像顯示于右面(當(dāng)使用 RTL 語言時(shí), 它將會(huì)顯示于左邊而不顯示于右邊).”
    這么一段話,請(qǐng)問何為RTL語言呢,本人愚拙,望指點(diǎn) 

    藍(lán)色網(wǎng)際
    RTL 就是 Right to Left,從右到左書寫的語言,大概像阿拉伯這樣的語言吧。



    restools

    venis function 向?qū)Чδ茉?NISEdit 上完整實(shí)現(xiàn),晚上或明天放出,不過需要人幫忙把向?qū)_本編寫完整,因?yàn)閷懗绦驎r(shí)只是拿了4個(gè)具代表性的 function 來作為測(cè)試,這是這次放出版本實(shí)現(xiàn)的功能。要知道 NSIS 的 funciton 有這么多啊。

     

     

     

    以下是代碼片段:

    ; NSIS 函數(shù)向?qū)募?br /> ; 腳本解釋
    ; Textbox(文本框) 如果不寫入這項(xiàng) Texbox 默認(rèn)使用 參數(shù)1(不帶引號(hào))
    ; 0:(不顯示) 1:(不帶引號(hào)) 2:(帶雙引號(hào)) 3:(多行顯示)
    ;
    ; Checkbox(允許參數(shù)按鈕) 如果不寫入這項(xiàng) Texbox 默認(rèn)使用 參數(shù)0(必填參數(shù))
    ; 0:(必填參數(shù)) 1:(可選擇) 2:(將來使用)
    ;
    ; Button(選擇參數(shù)填充按鈕) 如果不寫入這項(xiàng) Button 默認(rèn)使用 參數(shù)0(選擇參數(shù))
    ; 0:(不顯示) 1:(瀏覽選擇文件) 2:(瀏覽選擇目錄) 3:(選擇參數(shù)) 4:(選擇排序后的參數(shù)) 5:(選擇可復(fù)合參數(shù))
    ; 6:(選擇已排序的可復(fù)合參數(shù)) 7:(可選擇目錄或文件)
    ;
    ; 標(biāo)記: %%LABELS%%    -- 用在 Goto 這類函數(shù)中的 標(biāo)記 參數(shù)
    ;
    ; 函數(shù): %%FUNCTIONS%% -- 用在 Call 這類函數(shù)中的調(diào)用 參數(shù)
    ;
    ; 以上兩個(gè)常用變量是會(huì)自動(dòng)檢測(cè) NSIS 腳本里面的已有標(biāo)記和函數(shù)的
    ;
    ;例子:
    ;[Abort]      -- 函數(shù)名字
    ;Help=取消安裝,停止執(zhí)行腳本,并且在狀態(tài)顯示里顯示用戶信息。 -- 在函數(shù)向?qū)?duì)話框中旁邊的簡明幫助
    ;NumArgs=1      -- 函數(shù)共有幾個(gè)參數(shù)
    ;Arg1=用戶信息      -- 顯示在參數(shù)頂上的提示語句
    ;Button1=0      -- 該按鈕不顯示
    ;Checkbox1=0      -- 該參數(shù)為必填項(xiàng)
    ;Textbox1=2      -- 該參數(shù)為帶雙引號(hào)的字符串
    ;
    ;
    ;如果是多行字符例如簡明幫助,如果你要強(qiáng)行換行,請(qǐng)用英文的逗號(hào),如果你必須要顯示英文的逗號(hào),請(qǐng)用雙引號(hào)括起整個(gè)字符串。
    ;Help=""Cancels the install, stops execution of script, and displays user_message in the status display.""
    ;

    [Abort]
    Help=取消安裝,停止執(zhí)行腳本,并且在狀態(tài)顯示里顯示用戶信息。
    NumArgs=1
    Arg1=用戶信息
    Checkbox1=0
    Button1=0
    Textbox1=2

    [BringToFront]
    Help=使安裝程序窗口可見并把它帶到其他窗口的最前端。
    NumArgs=0

    [CreateShortCut]
    Help=創(chuàng)建一個(gè)指向“目標(biāo)文件”的快捷方式“快捷文件.lnk”,可以帶“參數(shù)”參數(shù)。
    NumArgs=8
    Arg1=快捷文件.lnk
    Checkbox1=0
    Button1=0
    Textbox1=2
    Arg2=目標(biāo)文件
    Checkbox2=0
    Button2=1
    Textbox2=2
    Arg3=參數(shù)
    Checkbox3=1
    Button3=0
    Textbox3=2
    Arg4=圖標(biāo)文件
    Checkbox4=1
    Button4=1
    Textbox4=2
    Arg5=圖標(biāo)索引號(hào)
    Button5=0
    Checkbox5=1
    Textbox5=1
    Arg6=啟動(dòng)選項(xiàng)
    Button6=3
    Checkbox6=1
    Textbox6=1
    Options6=SW_SHOWNORMAL,SW_SHOWMAXIMIZED,SW_SHOWMINIMIZED
    Arg7=鍵盤快捷鍵
    Button7=0
    Checkbox7=1
    Textbox7=2
    Arg8=描述
    Button8=0
    Checkbox8=1
    Textbox8=2

    [Goto]
    Help=如果指定了標(biāo)記,則跳轉(zhuǎn)到“要跳轉(zhuǎn)的標(biāo)記:”。
    NumArgs=1
    Arg1=要跳轉(zhuǎn)的標(biāo)記 | +偏移| -偏移| 用戶變量(目標(biāo))
    Textbox1=1
    Checkbox1=0
    Button1=3
    Options1=%%LABELS%%

    [Call]
    Help=調(diào)用“函數(shù)名”函數(shù)。如果在 Uninstall 區(qū)段,Call 僅能調(diào)用以“un.”開頭的函數(shù)名。
    NumArgs=1
    Arg1=函數(shù)名 | :標(biāo)記名
    Button1=3
    Checkbox1=0
    Textbox1=1
    Options1=%%LABELS%%,%%FUNCTIONS%%

    顯示效果

    2.彈出函數(shù)編輯窗口:

    3.確定后,輸入,這里一提的是,輸入時(shí),會(huì)自動(dòng)根據(jù)上一行代碼的縮進(jìn),自動(dòng)在輸入的函數(shù)行前面添加前導(dǎo)空格,以減少自己再輸入前面的空格。

    ==================
    ISS2NSI v1.0a2
    ==================
    ISS2NSI is a tool for convert Inno Setup script files into NSIS script files.


    Usage:
    ==================
    Program:
    At the command prompt write: iss2nsi issscript.iss [nsiscript.nsi]
    if nsiscript.nsi is no specified then the converted script will be
    saved with the same name of the issscript.iss but with extension .nsi.

    NIS Edit Plugin:
    1- Close HM NIS Edit.
    2- Put hmne_iss2nsi.dll in the plugins directory
    (Default $PROGRAMFILES\HMSoft\NIS Edit\Plugins)
    3- Start HM NIS Edit.
    4- You will found a new item in the tools menu called "Convert InnoSetup script".

    NOTE: Before compile the converted script please check it, because
    complete compatibility is NOT available. I design this tool to convert my
    Inno Setup scripts and is not tested with more complex scripts.

    The source code is included if you want to contribute to the project
    for make the converted script 100% compatible with the original.
    Please send my your modifications to ranametal@blistering.net
    Note that this project is a modification to the Inno Setup 3.0.6
    compiler and modifications to the Inno Setup source files are under
    the Inno Setup license (see: src\is-src\is-license.txt).

    Note: the files in the src\is-src directory are unmodified Inno Setup
    source files needed by the Compile.pas unit located in the src directory

    ---------------------------------------------------------
    hmne_iss2nsi.dll 把這個(gè)文件放到 NISEdit 目錄下的 Plugins 中就可以使用,沒有詳細(xì)測(cè)試,不過如果是針對(duì)版本的話, Inno Setup 3.0.6 ,估計(jì)應(yīng)該沒問題吧。
    ISS2NSI.rar

    雖然版本太低,用來從 ISS 的腳本轉(zhuǎn)向?qū)W習(xí) NSIS 應(yīng)該容易點(diǎn)吧。

    ISS2NSI 源碼下載。

    沒時(shí)間去看看它,只是把它編譯成了一個(gè)DLL。有時(shí)間看看它是什么原理。

    ISS2NSI_Src.rar

    NISEdit 的增強(qiáng)版本,希望有人來幫幫忙,增加一下函數(shù),否則這個(gè)版本也強(qiáng)不到哪里去。

    把里面的那些文件放入 NISEdit 的目錄中,為了區(qū)分原版,程序改名為 VNISEdit。
    兩個(gè)版本可以同時(shí)存在,不過你要把 VNISEdit 設(shè)為默認(rèn)編輯器,才可以默認(rèn)用它來打開。

    修正:
    1.添加一種菜單的皮膚。
    2.增加 NSIS 函數(shù)向?qū)Чδ堋#愃?Venis 中的 function 功能)
    4.改程序調(diào)用幫助時(shí),不要把幫助窗口置頂,因?yàn)橹庙敃?huì)令到查看幫助時(shí)不能切換會(huì)編輯器窗口。

    最新功能(區(qū)段結(jié)構(gòu)分析)
    左圖是VNISEdit解釋的,右圖是Venis分析的。分析對(duì)象(makensis.nsi)

    全景圖:試一下唄,分析速度比 Venis 好很多的。基本上感覺不到視圖的閃動(dòng)。線程實(shí)時(shí)分析,只要改動(dòng)代碼,視圖會(huì)立刻作出反應(yīng)。


      
    請(qǐng)問下面那些問題怎樣做的,
    1、怎樣控制自定義面的“下一步”按鈕的可用與不可用
    2、怎樣為自定義頁面上的組件添加Change事件呢
    3、我在這個(gè)網(wǎng)站里下載的foobar漢化增強(qiáng)版的安裝文件里看到頁面“MUI_PAGE_COMPONENTS”是怎么做到的,就是怎么把那個(gè)頁面的左邊改為能顯示描述內(nèi)容和隱蔽一些文本


    colonel

     

    藍(lán)色網(wǎng)際
    對(duì)于控制下一步按鈕來說,有三個(gè)階段分別是:頁面初始化之前、頁面初始化時(shí)、頁面要關(guān)閉時(shí)。不同的階段對(duì)應(yīng)的插入函數(shù)不同。

    比如要在頁面初始化之前禁止下一步按鈕,MUI 界面可以這樣

     

     

    以下是代碼片段:
    !define MUI_PAGE_CUSTOMFUNCTION_PRE ComponentPre
    !insertmacro MUI_PAGE_COMPONENTS

    Function ComponentPre
    GetDlgItem $0 $HWNDPARENT 1 
    EnableWindow $0 0
    FunctionEnd 

     

    colonel
    那“2、怎樣為自定義頁面上的組件添加Change事件呢”,我自定義了一個(gè)配置頁面,我想用戶在完成配置才可激活“下一步”按鈕,這個(gè)怎么做的呢

    藍(lán)色網(wǎng)際
    需要給控件加上 NOTIFY 的標(biāo)記。
    例子在我的簽名里有。

    需要先了解 GetDlgItem 和 EnableWindow 指令的作用。

    colonel
    這個(gè)問題呢
    3、我在這個(gè)網(wǎng)站里下載的foobar漢化增強(qiáng)版的安裝文件里看到頁面“MUI_PAGE_COMPONENTS”是怎么做到的,就是怎么把那個(gè)頁面的左邊改為能顯示描述內(nèi)容和隱蔽一些文本
    怎樣使“MUI_PAGE_COMPONENTS”中的樹目錄只能在點(diǎn)選復(fù)選框才被選中呢

    藍(lán)色網(wǎng)際
    這個(gè)用 Resource Hacker 調(diào)整一下控件就行了。默認(rèn)的 UI 文件是 NSIS\Contrib\UIs\modern.exe
    到我的簽名里下一個(gè)特別版的 makensis.exe。

    colonel
    我不想在組件選擇頁面中用 onMouseOverSection 來顯示 描述 ,如果架設(shè)函數(shù)可以增加的話,我就想到這個(gè) “回調(diào) onMouseDownSection ”

    我是想通過組件目錄里的 OnChange 事件來顯示

    我不懂VC++吖,如果我會(huì)的話就可以像MM你那樣去改它的代碼了

    藍(lán)色網(wǎng)際
    特別版的就是這樣啊,當(dāng)你點(diǎn)擊組件的時(shí)候描述區(qū)域才會(huì)顯示或改變。
    普通版的只要鼠標(biāo)移上去就顯示了。你沒試過嗎。

    colonel
    哦~~~~~~~試到了,原來你是改了onMouseOverSection 回調(diào),對(duì)啦,MM你有沒有做過 組件的OnChange 事件嗎?主要是用在自定義頁面上的

    是用這個(gè)嗎?Call shell32.dll::SHChangeNotify

    藍(lán)色網(wǎng)際
    不知道你說的“組件的 OnChange 事件”是什么意思。
    是不是當(dāng)組件選擇更改的時(shí)候調(diào)用的函數(shù)呢?如果是的話那直接使用 Function .onSelChange 就行了。

     


    wq99
    各位好:我是新手,
    我在看function時(shí),沒發(fā)現(xiàn)參數(shù)的傳入。
    可能我的思維方式不對(duì)。
    function Fname
    functionend
    參數(shù)應(yīng)該怎么傳呢?

     

    藍(lán)色網(wǎng)際
    NSIS 的函數(shù)其實(shí)是個(gè)假函數(shù),并不能像 C++ 那樣傳遞參數(shù),如果你需要傳遞參數(shù)請(qǐng)使用堆棧。
    一個(gè)典型的例子請(qǐng)看附錄的 Get parent directory。 

    那如果一個(gè)Edit里的內(nèi)容發(fā)生變化,另一個(gè)組件也跟關(guān)變化,這個(gè)Edit 的Change事件去寫呢

    PS:可能我習(xí)慣于使用delphi所以有時(shí)說到的組件事件名稱與你不一樣吧 


    colonel
     
    那如果一個(gè)Edit里的內(nèi)容發(fā)生變化,另一個(gè)組件也跟關(guān)變化,這個(gè)Edit 的Change事件去寫呢
     
     PS:可能我習(xí)慣于使用delphi所以有時(shí)說到的組件事件名稱與你不一樣吧

    藍(lán)色網(wǎng)際
    你可以參考一下 NSIS\Contrib\InstallOptions\testnotify.nsi


    wq99
    File "${LOCATION}\$R0"
    $R0是一個(gè)文件,結(jié)果
    說沒有這個(gè)文件,
    File "${LOCATION}\123.exe"
    那就可以了。

    奇怪,我第一句寫錯(cuò)了么?
    File "${LOCATION}\${R0}"這樣也不對(duì)。

    藍(lán)色網(wǎng)際
    你可以先在資源管理器里看看是否有 $R0 這個(gè)文件。一般來說很少有這種不帶擴(kuò)展名的奇怪文件,況且不帶擴(kuò)展名的話很容易被當(dāng)作目錄來處理。

    一般來說編譯器的報(bào)告是正確的,這里有一個(gè)測(cè)試腳本,你可以試試看。
    test.zip

    wq99
    啊~對(duì)不起啊,我沒說仔細(xì)。

    $R0是變量,是從堆棧里Pop出來的。
    即123.exe.
    File "${LOCATION}\$R0"
    即File "${LOCATION}\123.exe"

     

    以下是代碼片段:
    Push "123.exe"
    ……
    Function InstallOne
    Pop $R0
    DetailPrint $R0
    SetOutPath "$INSTDIR"
    File "${LOCATION}\$R0"
    ExecWait ’"$INSTDIR\$R0"’
    FunctionEnd


    DetailPrint $R0
    是可以打印出 123.exe
    改成File "${LOCATION}\123.exe"是可以的。
    怎么用$R0就不行了呢?

     

    藍(lán)色網(wǎng)際
    File 指令后面的文件必須是編譯時(shí)當(dāng)前系統(tǒng)存在的文件,而 $R0 要在編譯后才有值當(dāng)然會(huì)出錯(cuò)。變量是運(yùn)行時(shí)才有效的。
    如果你想改名的話請(qǐng)使用 File "/oname=目標(biāo)文件" "本地文件"
    oname= 后面的目標(biāo)文件可以用變量。  


    arthur810
    為什么我的“安裝程序語言”里面是空的
    如圖,請(qǐng)指教,謝謝
    注:WinXP SP2簡體中文系統(tǒng)

    zhp0083
    手動(dòng)指定一次就會(huì)有了
     

    以下是代碼片段:
    !insertmacro MUI_LANGUAGE "SimpChinese" 


    sjhome
    請(qǐng)問NSIS只能添加一個(gè)目錄下的文件,怎么樣能添加所以目錄下的文件呢?怎么設(shè)置呢?多謝!
    如圖所示.
    只能添加"Counter-Strike Source"目錄下的文件,怎么樣能添加"Counter-Strike Source下的bin文件,config文件及所以文件夾"呢?

     

    藍(lán)色網(wǎng)際
    File 可以使用 /r 或 /x 。

    Feedback

    # re: NSIS安裝制作基礎(chǔ)教程[初級(jí)篇][轉(zhuǎn)]  回復(fù)  更多評(píng)論   

    2008-04-02 13:24 by lovesena
    http://www.hanzify.org/teach/UserFiles/Image/20053202439236.jpg
    怎么手動(dòng)指定啊!可以指教下嗎?

    # re: NSIS安裝制作基礎(chǔ)教程[初級(jí)篇][轉(zhuǎn)]  回復(fù)  更多評(píng)論   

    2008-04-23 08:54 by Matthew Chen
    文中有講,大概意思就是你實(shí)在沒辦法了在生成的代碼上加
    !insertmacro MUI_LANGUAGE "SimpChinese"

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲.国产.欧美一区二区三区| 亚洲综合色一区二区三区小说| 亚洲AV无码成人网站在线观看| 成人免费黄色网址| 亚洲人妖女同在线播放| 歪歪漫画在线观看官网免费阅读 | 一本色道久久88亚洲精品综合| 国产成人精品免费午夜app| 亚洲精品mv在线观看| 国产成人福利免费视频| 亚洲中文字幕无码久久2020| 小小影视日本动漫观看免费| 无码天堂va亚洲va在线va| 亚洲精品视频免费观看| 国产午夜无码精品免费看| 亚洲毛片基地日韩毛片基地| 欧美大尺寸SUV免费| 国产亚洲综合久久| 亚洲va中文字幕无码久久不卡| 99在线观看免费视频| 亚洲中文无码卡通动漫野外| 亚洲av无码不卡私人影院| 中文字幕乱码免费看电影| 亚洲综合久久久久久中文字幕| 成人激情免费视频| 国产成人无码免费网站| 亚洲高清视频在线播放| 午夜视频在线在免费| 中文字幕av免费专区| 亚洲白嫩在线观看| 亚洲国产精品综合久久一线| 久久久精品免费国产四虎| 亚洲日韩精品无码AV海量| 青青草原亚洲视频| 在线观看免费人成视频色9| 欧洲乱码伦视频免费国产| 亚洲欧洲日产国产综合网| 日韩电影免费在线| 无码日韩精品一区二区免费暖暖| 亚洲日韩精品无码专区| 久久亚洲AV午夜福利精品一区|