• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            小默

            完美的 NSIS 安裝腳本zz

            http://www.yonsm.net/read.php?58
            --------------

            這幾天稍稍深入地使用了一下 NSIS,功能太強大了。回首看看不比學(xué)習(xí)一門高級語言容易,不過一般也能信手拈來……

            制作了一個 CuteFoto 的 NSIS 安裝腳本,支持多語言,支持自動判斷操作系統(tǒng)并優(yōu)先選擇安裝 ASCII/UNICODE或AMD64版本,支持……

            感覺應(yīng)該是非常完美了:)

            附件下載: 請點這里

            其中幾個地方說明一下:

            • 如果以 SectionGroup 而不是 Section 為第一個區(qū)段定義,發(fā)現(xiàn) NSIS 無法正常處理默認(rèn)/自定義安裝類型,應(yīng)該是 NSIS 的一個 BUG。但是在d第一個 SectionGroup 之前加上一個無名的空段 (隱藏),即可解決此問題。即 Section...SectionEnd。
            • 判斷是否是 NT 類操作系統(tǒng): ReadRegStr $0 HKLM "SOFTWAREMicrosoftWindows NTCurrentVersion" "CurrentVersion"
              ${If} $0 != ""
            • 判斷是處理器架構(gòu): ReadRegStr $0 HKLM "SYSTEMCurrentControlSetControlSession ManagerEnvironment" "PROCESSOR_ARCHITECTURE"
              ${If} $0 != "AMD64"
            • 還有單選按鈕支持,看代碼……
            • NSIS 的中文文檔和例子請看這里: http://foobar.nease.net/nsis/ (衷心感謝藍(lán)色網(wǎng)際網(wǎng)友的工作,foobarr.cab 內(nèi)有一個助手函數(shù)庫,看看也許會很有用)

             

            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 頭文件
            !include "MUI.nsh"
            !include "Sections.nsh"
            !include "LogicLib.nsh"
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 宏定義
            !define STR_AppName "CuteFoto"
            !define STR_Version "2.2.240"
            !define STR_Publisher "Yonsm.NET"
            !define STR_HomepageUrl "http://Yonsm.zj.com"

            !define REG_AppPath "Software\Microsoft\Windows\CurrentVersion\App Paths\${STR_AppName}.exe"
            !define REG_Uninstall "Software\Microsoft\Windows\CurrentVersion\Uninstall\${STR_AppName}"
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; MUI 設(shè)置
            !define MUI_ABORTWARNING
            !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
            !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
            !define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp"
            !define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp"
            !define MUI_HEADERIMAGE
            !define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange.bmp"
            !define MUI_HEADERIMAGE_UNBITMAP "${NSISDIR}\Contrib\Graphics\Header\orange-uninstall.bmp"

            ; 組件頁面設(shè)置
            !define MUI_COMPONENTSPAGE_SMALLDESC

            ; 完成安裝頁面設(shè)置
            !define MUI_FINISHPAGE_RUN "$INSTDIR\${STR_AppName}.exe"
            !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\${STR_AppName}.chm"
            !define MUI_FINISHPAGE_SHOWREADME_TEXT "$(LNG_ShowHelp)"
            !define MUI_FINISHPAGE_LINK "${STR_AppName} $(LNG_Homepage): ${STR_HomepageUrl}"
            !define MUI_FINISHPAGE_LINK_LOCATION "${STR_HomepageUrl}"

            ; 語言選擇設(shè)置
            !define MUI_LANGDLL_REGISTRY_ROOT "HKLM"
            !define MUI_LANGDLL_REGISTRY_KEY "${REG_Uninstall}"
            !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"

            ; 安裝頁面
            !insertmacro MUI_PAGE_WELCOME
            !insertmacro MUI_PAGE_LICENSE "$(LNG_License)"
            !insertmacro MUI_PAGE_COMPONENTS
            !insertmacro MUI_PAGE_DIRECTORY
            !insertmacro MUI_PAGE_INSTFILES
            !insertmacro MUI_PAGE_FINISH

            ; 卸載頁面
            !insertmacro MUI_UNPAGE_WELCOME
            !insertmacro MUI_UNPAGE_CONFIRM
            !insertmacro MUI_UNPAGE_INSTFILES
            !insertmacro MUI_UNPAGE_FINISH

            ; 語言支持
            !insertmacro MUI_LANGUAGE "English"
            !insertmacro MUI_LANGUAGE "SimpChinese"
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 語言相關(guān)字符串
            LicenseLangString LNG_License ${LANG_ENGLISH} 
            "EULA.ENU.rtf"
            LangString LNG_BrandingText ${LANG_ENGLISH} 
            "Expert -> Professional -> Absorbedly"

            LangString LNG_DefaultInstation ${LANG_ENGLISH} 
            "Default installtion"
            LangString LNG_FullInstation ${LANG_ENGLISH} 
            "Full installtion"
            LangString LNG_MinimalInstation ${LANG_ENGLISH} 
            "Minimal installtion"

            LangString LNG_Help ${LANG_ENGLISH} 
            "Help"
            LangString LNG_Homepage ${LANG_ENGLISH} 
            "Homepage"
            LangString LNG_Uninstall ${LANG_ENGLISH} 
            "Uninstall"
            LangString LNG_ShowHelp ${LANG_ENGLISH} 
            "Show Help"

            LangString LNG_ProgramFile ${LANG_ENGLISH} 
            "Program Files"
            LangString LNG_LanguageFile ${LANG_ENGLISH} 
            "Language Files"
            LangString LNG_CreateShortcut ${LANG_ENGLISH} 
            "Create Shortcut"

            LangString LNG_ProgramMenuShortcutGroup ${LANG_ENGLISH} 
            "Program Menu Shortcut Group"
            LangString LNG_DesktopShortcut ${LANG_ENGLISH} 
            "Desktop Shortcut"
            LangString LNG_ProgramMenuShortcut ${LANG_ENGLISH} 
            "Program Menu Shortcut"
            LangString LNG_StartMenuShortcut ${LANG_ENGLISH} 
            "Start Menu Shortcut"
            LangString LNG_QuickLaunchShortcut ${LANG_ENGLISH} 
            "Quick Launch Bar Shortcut"

            LangString LNG_ProgramFileDesc ${LANG_ENGLISH} 
            "Install ${STR_AppName} program files."
            LangString LNG_LanguageFileDesc ${LANG_ENGLISH} 
            "Install ${STR_AppName} language files."
            LangString LNG_CreateShortcutDesc ${LANG_ENGLISH} 
            "Create shortcuts to launch the program easy."

            LangString LNG_X86AsciiDesc ${LANG_ENGLISH} 
            "ASCII version on WIN32 platform for X86 architecture (The only choice on WIN9X OS for X86 architecture)."
            LangString LNG_X86UnicodeDesc ${LANG_ENGLISH} 
            "Unicode version on WIN32 platform for X86 architecture (Preferred on WINNT OS for X86 architecture)."
            LangString LNG_X64UnicodeDesc ${LANG_ENGLISH} 
            "Unicode version on WIN64 platform for X64 architecture (Preferred on WIN64 OS for X64 architecture)."


            LicenseLangString LNG_License ${LANG_SIMPCHINESE} 
            "EULA.CHS.rtf"
            LangString LNG_BrandingText ${LANG_SIMPCHINESE} 
            "專家 -> 專業(yè) -> 專心"

            LangString LNG_DefaultInstation ${LANG_SIMPCHINESE} 
            "默認(rèn)安裝"
            LangString LNG_FullInstation ${LANG_SIMPCHINESE} 
            "完全安裝"
            LangString LNG_MinimalInstation ${LANG_SIMPCHINESE} 
            "最小安裝"

            LangString LNG_Help ${LANG_SIMPCHINESE} 
            "幫助"
            LangString LNG_Homepage ${LANG_SIMPCHINESE} 
            "主頁"
            LangString LNG_Uninstall ${LANG_SIMPCHINESE} 
            "卸載"
            LangString LNG_ShowHelp ${LANG_SIMPCHINESE} 
            "查看幫助"

            LangString LNG_ProgramFile ${LANG_SIMPCHINESE} 
            "程序文件"
            LangString LNG_LanguageFile ${LANG_SIMPCHINESE} 
            "語言文件"
            LangString LNG_CreateShortcut ${LANG_SIMPCHINESE} 
            "創(chuàng)建快捷方式"

            LangString LNG_ProgramMenuShortcutGroup ${LANG_SIMPCHINESE} 
            "程序菜單快捷方式組"
            LangString LNG_DesktopShortcut ${LANG_SIMPCHINESE} 
            "桌面快捷方式"
            LangString LNG_ProgramMenuShortcut ${LANG_SIMPCHINESE} 
            "程序菜單快捷方式"
            LangString LNG_StartMenuShortcut ${LANG_SIMPCHINESE} 
            "開始菜單快捷方式"
            LangString LNG_QuickLaunchShortcut ${LANG_SIMPCHINESE} 
            "快速啟動欄快捷方式"

            LangString LNG_ProgramFileDesc ${LANG_SIMPCHINESE} 
            "安裝 ${STR_AppName} 程序文件。"
            LangString LNG_LanguageFileDesc ${LANG_SIMPCHINESE} 
            "安裝 ${STR_AppName} 語言文件。"
            LangString LNG_CreateShortcutDesc ${LANG_SIMPCHINESE} 
            "創(chuàng)建用于快速訪問的快捷方式。"

            LangString LNG_X86AsciiDesc ${LANG_SIMPCHINESE} 
            "安裝 X86 架構(gòu) WIN32 平臺上的  ASCII 版本。這是在 X86 架構(gòu) WIN9X 類操作系統(tǒng)中的唯一選擇。"
            LangString LNG_X86UnicodeDesc ${LANG_SIMPCHINESE} 
            "安裝 X86 架構(gòu) WIN32 平臺上的 UNICODE 版本。這是在 X86 架構(gòu) WINNT 類操作系統(tǒng)中的優(yōu)先選擇。"
            LangString LNG_X64UnicodeDesc ${LANG_SIMPCHINESE} 
            "安裝 X64 架構(gòu) WIN64 平臺上的 UNICODE 版本。這是在 X64 架構(gòu) WIN64 類操作系統(tǒng)中的優(yōu)先選擇。"
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 雜項
            Name 
            "${STR_AppName} ${STR_Version}"
            OutFile 
            "${STR_AppName}.${STR_Version}.exe"
            InstallDir 
            "$PROGRAMFILES\${STR_AppName}"
            InstallDirRegKey HKLM 
            "${REG_AppPath}" ""
            ShowInstDetails SHOW
            ShowUnInstDetails SHOW
            BrandingText 
            "$(LNG_BrandingText)"
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;




            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 安裝類型
            !ifndef NOINSTTYPES
                InstType 
            "$(LNG_DefaultInstation)"
                InstType 
            "$(LNG_FullInstation)"
                InstType 
            "$(LNG_MinimalInstation)"
            !endif
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 程序文件
            Section
            SectionEnd
            SectionGroup 
            /"$(LNG_ProgramFile)" SEC_ProgramFile
                Section 
            "-HelpFile" SEC_HelpFile
                    SetOutPath 
            "$INSTDIR"
                    SetOverwrite ON 
                    
                    File 
            "..\Help\CuteFoto.chm"
                SectionEnd

                Section 
            "X86 ASCII" SEC_X86Ascii
                    SectionIn 
            1 2 3
                    File 
            "..\Release\CuteFoto.exe"
                SectionEnd

                Section 
            "X86 UNICODE" SEC_X86Unicode
                    SectionIn 
            5 RO
                    File 
            "..\Unicode\Release\CuteFoto.exe"
                SectionEnd

                Section 
            "X64 UNICODE" SEC_X64Unicode
                    SectionIn 
            5 RO
                    File 
            "..\AMD64\Release\CuteFoto.exe"
                SectionEnd
            SectionGroupEnd
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 語言文件
            SectionGroup 
            "$(LNG_LanguageFile)" SEC_LanguageFile
                Section 
            "English" SEC_English
                    SectionIn 
            2
                    File 
            "..\Release\English.lng"
                SectionEnd

                Section 
            "CAPITAL ENGLISH" SEC_CapitalEnglish
                    SectionIn 
            1 2
                    File 
            "..\Release\English (Capital).lng"
                SectionEnd

                Section 
            "簡體中文" SEC_SimplifiedChinese
                    SectionIn 
            1 2
                    File 
            "..\Release\Chinese (Simplified).lng"
                SectionEnd
            SectionGroupEnd
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 快捷方式
            SectionGroup 
            "$(LNG_CreateShortcut)" SEC_Shortcut
                SectionGroup 
            "$(LNG_ProgramMenuShortcutGroup)" SEC_ProgramMenuShortcutGroup
                    Section 
            "${STR_AppName}" SEC_AppNameShortcut
                        SectionIn 
            1 2
                        CreateDirectory 
            "$SMPROGRAMS\${STR_AppName}"
                        CreateShortCut 
            "$SMPROGRAMS\${STR_AppName}\${STR_AppName}.lnk" "$INSTDIR\${STR_AppName}.exe"
                    SectionEnd

                    Section 
            "${STR_AppName} $(LNG_Help)" SEC_HelpShortcut
                        SectionIn 
            1 2
                        CreateDirectory 
            "$SMPROGRAMS\${STR_AppName}"
                        CreateShortCut 
            "$SMPROGRAMS\${STR_AppName}\${STR_AppName} $(LNG_Help).lnk" "$INSTDIR\${STR_AppName}.chm"
                    SectionEnd

                    Section 
            "${STR_AppName} $(LNG_Homepage)" SEC_HomePageShortcut
                        SectionIn 
            1 2
                        CreateDirectory 
            "$SMPROGRAMS\${STR_AppName}"
                        WriteINIStr 
            "$SMPROGRAMS\${STR_AppName}\${STR_AppName} $(LNG_Homepage).url" "InternetShortcut" "URL" "${STR_HomepageUrl}"
                    SectionEnd

                    Section 
            "$(LNG_Uninstall) ${STR_AppName}" SEC_UninstallShortcut
                        SectionIn 
            1 2
                        CreateDirectory 
            "$SMPROGRAMS\${STR_AppName}"
                        CreateShortCut 
            "$SMPROGRAMS\${STR_AppName}\$(LNG_Uninstall) ${STR_AppName}.lnk" "$INSTDIR\Uninstall ${STR_AppName}.exe"
                    SectionEnd
                SectionGroupEnd

                Section 
            "$(LNG_DesktopShortcut)" SEC_DesktopShortcut
                    SectionIn 
            1 2
                    CreateShortCut 
            "$DESKTOP\${STR_AppName}.lnk" "$INSTDIR\${STR_AppName}.exe"
                SectionEnd

                Section 
            "$(LNG_ProgramMenuShortcut)" SEC_ProgramMenuShortcut
                    SectionIn 
            2
                    CreateShortCut 
            "$SMPROGRAMS\${STR_AppName}.lnk" "$INSTDIR\${STR_AppName}.exe"
                SectionEnd
                
                Section 
            "$(LNG_StartMenuShortcut)" SEC_StartMenuShortcut
                    SectionIn 
            2
                    CreateShortCut 
            "$STARTMENU\${STR_AppName}.lnk" "$INSTDIR\${STR_AppName}.exe"
                SectionEnd

                Section 
            "$(LNG_QuickLaunchShortcut)" SEC_QuickLaunchShortcut
                    SectionIn 
            2
                    CreateShortCut 
            "$QUICKLAUNCH\${STR_AppName}.lnk" "$INSTDIR\${STR_AppName}.exe"
                SectionEnd
            SectionGroupEnd
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 完成安裝
            Section 
            "-PostInstall"
                WriteUninstaller 
            "$INSTDIR\Uninstall ${STR_AppName}.exe"
                WriteRegStr HKLM 
            "${REG_AppPath}" "" "$INSTDIR\CuteFoto.exe"
                WriteRegStr HKLM 
            "${REG_Uninstall}" "DisplayName" "$(^Name)"
                WriteRegStr HKLM 
            "${REG_Uninstall}" "UninstallString" "$INSTDIR\Uninstall ${STR_AppName}.exe"
                WriteRegStr HKLM 
            "${REG_Uninstall}" "DisplayIcon" "$INSTDIR\CuteFoto.exe"
                WriteRegStr HKLM 
            "${REG_Uninstall}" "DisplayVersion" "${STR_Version}"
                WriteRegStr HKLM 
            "${REG_Uninstall}" "URLInfoAbout" "${STR_HomepageUrl}"
                WriteRegStr HKLM 
            "${REG_Uninstall}" "Publisher" "${STR_Publisher}"
            SectionEnd
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 卸載
            Section 
            "Uninstall"
                Delete 
            /REBOOTOK "$SMPROGRAMS\${STR_AppName}\${STR_AppName}.lnk"
                Delete 
            /REBOOTOK "$SMPROGRAMS\${STR_AppName}\${STR_AppName} $(LNG_Help).lnk"
                Delete 
            /REBOOTOK "$SMPROGRAMS\${STR_AppName}\${STR_AppName} $(LNG_Homepage).url"
                Delete 
            /REBOOTOK "$SMPROGRAMS\${STR_AppName}\$(LNG_Uninstall) ${STR_AppName}.lnk"

                Delete 
            /REBOOTOK "$DESKTOP\${STR_AppName}.lnk"
                Delete 
            /REBOOTOK "$SMPROGRAMS\${STR_AppName}.lnk"
                Delete 
            /REBOOTOK "$STARTMENU\${STR_AppName}.lnk"
                Delete 
            /REBOOTOK "$QUICKLAUNCH\${STR_AppName}.lnk"

                Delete 
            /REBOOTOK "$INSTDIR\${STR_AppName}.exe"
                Delete 
            /REBOOTOK "$INSTDIR\${STR_AppName}.chm"
                Delete 
            /REBOOTOK "$INSTDIR\English.lng"
                Delete 
            /REBOOTOK "$INSTDIR\English (Capital).lng"
                Delete 
            /REBOOTOK "$INSTDIR\Chinese (Simplified).lng"

                Delete 
            /REBOOTOK "$INSTDIR\${STR_AppName}.ini"
                Delete 
            /REBOOTOK "$INSTDIR\Uninstall ${STR_AppName}.exe"

                RMDir 
            /REBOOTOK "$SMPROGRAMS\${STR_AppName}"
                RMDir 
            /REBOOTOK "$INSTDIR"

                DeleteRegKey HKLM 
            "${REG_Uninstall}"
                DeleteRegKey HKLM 
            "${REG_AppPath}"
                SetAutoClose True
            SectionEnd
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 節(jié)描述
            !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_ProgramFile} "$(LNG_ProgramFileDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_LanguageFile} "$(LNG_LanguageFileDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_Shortcut} "$(LNG_CreateShortcutDesc)"

                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_X86Ascii} "$(LNG_X86AsciiDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_X86Unicode} "$(LNG_X86UnicodeDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_X64Unicode} "$(LNG_X64UnicodeDesc)"

                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_English} "Install language file: English (For translation only)."
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_CapitalEnglish} "INSTALL LANGUAGE FILE: CAPITAL ENGLISH."
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_SimplifiedChinese} "安裝語言文件: 簡體中文。"

                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_ProgramMenuShortcutGroup} "$(LNG_CreateShortcutDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_DesktopShortcut} "$(LNG_CreateShortcutDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_ProgramMenuShortcut} "$(LNG_CreateShortcutDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_StartMenuShortcut} "$(LNG_CreateShortcutDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_QuickLaunchShortcut} "$(LNG_CreateShortcutDesc)"

                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_AppNameShortcut} "$(LNG_CreateShortcutDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_HelpShortcut} "$(LNG_CreateShortcutDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_HomePageShortcut} "$(LNG_CreateShortcutDesc)"
                
            !insertmacro MUI_DESCRIPTION_TEXT ${SEC_UninstallShortcut} "$(LNG_CreateShortcutDesc)"
            !insertmacro MUI_FUNCTION_DESCRIPTION_END
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 初始化回調(diào)函數(shù)
            Function .onInit
                StrCpy $
            1 ${SEC_X86Ascii}

                ReadRegStr $
            0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentVersion"
                ${If} $
            0 != ""
                    SectionSetInstTypes ${SEC_X86Ascii} 
            0
                    
            !insertmacro UnselectSection ${SEC_X86Ascii}
                    
            !insertmacro ClearSectionFlag ${SEC_X86Unicode} ${SF_RO}

                    ReadRegStr $
            0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PROCESSOR_ARCHITECTURE"
                    ${If} $
            0 != "AMD64"
                        SectionSetInstTypes ${SEC_X86Unicode} 
            7
                        
            !insertmacro SelectSection ${SEC_X86Unicode}
                        StrCpy $
            1 ${SEC_X86Unicode}
                    ${Else}
                        SectionSetInstTypes ${SEC_X64Unicode} 
            7
                        
            !insertmacro ClearSectionFlag ${SEC_X64Unicode} ${SF_RO}
                        
            !insertmacro SelectSection ${SEC_X64Unicode}
                        StrCpy $
            1 ${SEC_X64Unicode}
                    ${EndIf}        
                ${EndIf}
                
                
            !insertmacro MUI_LANGDLL_DISPLAY
            FunctionEnd
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 選擇改變
            Function .onSelChange
                
            !insertmacro StartRadioButtons $1
                    
            !insertmacro RadioButton ${SEC_X86Ascii}
                    
            !insertmacro RadioButton ${SEC_X86Unicode}
                    
            !insertmacro RadioButton ${SEC_X64Unicode}
                
            !insertmacro EndRadioButtons
            FunctionEnd
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ; 卸載初始化
            Function un.onInit
                
            !insertmacro MUI_UNGETLANGUAGE
            FunctionEnd
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

            posted on 2010-02-06 00:00 小默 閱讀(7796) 評論(1)  編輯 收藏 引用 所屬分類: Language

            評論

            # re: 完美的 NSIS 安裝腳本zz 2014-05-13 19:32 anopos

            路過留名。  回復(fù)  更多評論   

            導(dǎo)航

            統(tǒng)計

            留言簿(13)

            隨筆分類(287)

            隨筆檔案(289)

            漏洞

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            亚洲愉拍99热成人精品热久久 | 久久福利青草精品资源站免费| 亚洲午夜久久久| 精品久久久无码中文字幕| 狠狠色丁香婷综合久久| 日本久久久久亚洲中字幕 | 精品综合久久久久久98| 亚洲国产精品综合久久网络 | 色欲综合久久中文字幕网| 波多野结衣久久一区二区| 婷婷久久综合| 2020久久精品亚洲热综合一本 | 亚洲色欲久久久久综合网| 亚洲国产成人精品女人久久久 | 精品多毛少妇人妻AV免费久久| 色成年激情久久综合| 久久91精品久久91综合| 亚洲国产精品一区二区久久| 久久最近最新中文字幕大全| 久久综合九色综合97_久久久| 国产精品热久久毛片| 久久久精品人妻无码专区不卡| 色婷婷狠狠久久综合五月| 精品国产乱码久久久久软件| 亚洲人成网亚洲欧洲无码久久| 久久久久久亚洲Av无码精品专口 | 亚洲а∨天堂久久精品9966| 久久久久国产精品人妻| 久久久久亚洲精品无码蜜桃| av午夜福利一片免费看久久| 麻豆精品久久精品色综合| 久久久精品日本一区二区三区| 久久久久国产精品嫩草影院| 2021精品国产综合久久| 久久se精品一区精品二区国产| 精品久久久一二三区| 久久99热只有频精品8| 久久99精品久久久久久水蜜桃| 亚洲国产婷婷香蕉久久久久久| 久久偷看各类wc女厕嘘嘘| 国产69精品久久久久99|