inno setup拷貝檔案夾

來源:互聯網
上載者:User

 、指令碼範例分析:先來看看一段用INNO SETUP指令碼嚮導建立的基本指令碼的[Setup]段:[Setup]

 AppName=Premiere 6.5 漢化補丁-----------------(程式名稱)AppVerName=Premiere 6.5 漢化補丁------------(程式名稱+版本)AppPublisher=浩子工作室----------------------------(開發單位或作者)AppPublisherURL=http://www.haozi.com------(開發單位或作者網址)AppSupportURL=http://www.haozi.com-------(技術服務網址)AppUpdatesURL=http://www.haozi.com-------(更新升級網址)DefaultDirName={pf}/Adobe/Premiere 6.5-----(預設安裝路徑,{pf}就是“Program files”檔案夾)DefaultGroupName=Premiere 6.5 漢化補丁----(預設添加在開始菜單中的項目名稱)AllowNoIcons=yes--------------------------------------(建立捷徑表徵圖)LicenseFile=D:/漢化/許可檔案.txt------------------(顯示許可協議) InfoBeforeFile=D:/漢化/漢化說明.txt-------------(顯示軟體說明)OutputDir=成品-----------------------------------------(安裝程式存放位置)OutputBaseFilename=Premiere 6.5 漢化補丁--(安裝程式名稱) SetupIconFile=漢.ico----------------------------------(安裝程式表徵圖)Compression=lzma-------------------------------------(壓縮器:Lzma)SolidCompression=yes--------------------------------(壓縮方式:一次性壓縮)括弧裡內容是筆者添加的注釋,我想大家應該能夠理解。不過,作為漢化補丁,一般不需要建立開始功能表項目,不需要建立捷徑表徵圖,不需要卸載功能,而要求具有自動尋找原程式安裝位置的功能,這樣可使補丁安裝更方便快捷, 因此作了如下修改:(1)去掉以下項目:DefaultGroupName=Premiere 6.5 漢化補丁----(預設添加在開始菜單中的項目名稱)AllowNoIcons=yes--------------------------------(建立捷徑表徵圖)(2)增加以下項目:DisableDirPage=yes-------------------------------(不用指定安裝路徑)DisableProgramGroupPage=yes---------------(不要添加開始功能表項目)DirExistsWarning=no-----------------------------(不提示檔案夾已存在) Uninstallable=no-----------------------------------(不要卸載程式) (3)修改以下項目:原來的:DefaultDirName={pf}/Adobe/Premiere 6.5----(預設安裝路徑,{pf}就是“Program files”檔案夾)關鍵問題是,這個路徑是死的,一旦你在安裝Premiere 6.5時更改了安裝路徑,比如有些人喜歡把大程式安裝到D盤,這麼一來,原路徑就無效了,結果您還得手動指定正確的路徑。這樣的安裝程式就顯得太“笨”了。那麼,如何讓補丁程式自動獲得原程式的實際安裝路徑呢?回答是:利用註冊表。大多數應用程式安裝後都會向註冊表的特定位置寫入安裝和卸載資訊,因此,只要讓安裝程式提取這些資訊並轉位自己的安裝路徑,就可實現自動定位功能。Inno Setup早就支援這個功能了,現在,我們把Premiere 6.5的註冊表資訊告訴它就行了,請看修改後的:DefaultDirName={reg:HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/Adobe Premiere 6.5,InstallLocation}-------------(從註冊表讀取Premiere 6.5的實際安裝路徑) 接著來看看基本指令碼的[Files]段, 前面講過,這一段是用來定義要打包到安裝程式裡的檔案的, 因此, 要搞清楚這幾個名詞:Source:-------------檔案的存放位置(來源)DestDir:-------------檔案要安裝到什麼地方(目標)Flags:----------------對檔案的附加處理參數(標示)下面來看看具體內容: [Files]Source: "D:/漢化/Preminfo.dll"; DestDir: "{app}"; Flags: ignoreversionSource: "D:/漢化/主程式/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "D:/漢化/外掛程式/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs 生詞注釋:{app}----------------這是個常量, 代表程式安裝路徑,只要你在[Setup]段中的DefaultDirName項中進行了設定,其他地方就可以用它來代替。可能有人會問,常量是什嗎?通俗地說就是固定詞彙,它們用簡單的符號分別代表作業系統中的一些固定目錄,使指令碼簡潔明了。具體內容可參看Inno Setup的協助文本裡的相關說明。Ignoreversion--------不理會檔案的版本問題。Recursesubdirs-------把主資料夾和子檔案夾一塊兒打包(一鍋端)。Createallsubdirs-----安裝時建立相應的子檔案夾。對[Files]段的修改:很多漢化補丁都是直接用漢化過的檔案去替換原檔案,很少在原程式目錄裡建立新的檔案夾,因此可以去掉 Flags 標示中的 Createallsubdirs 項。在安裝的時候執行某個可執行檔...[Files]     Source:   "你要執行的檔案名稱";   DestDir:   "{app}";   Flags:   ignoreversion   deleteafterinstall     .....    [Run]     Filename:   "{app}/你要執行的檔案名稱";   Description:   "Setup";   Flags:   skipifsilent   shellexec  附:Inno Setup的安裝指令碼包含的主要段落:[Setup] 段:安裝和卸載程式的全域設定,如作者資訊、安裝目錄、壓縮方式、是否卸載等。[Types] 段:定義安裝組件的類型,如“完整安裝”、“最小安裝”、“選擇安裝”。[Components] 段:定義可供選擇安裝的所有組件[Tasks] 段:定義安裝期間所有由使用者定製的任務。[Dirs] 段:定義使用者想額外建立的目錄。[Files] 段:定義要打包到安裝程式裡的檔案。[Icons] 段:定義要建立在開始菜單、案頭或工作列等位置的捷徑和表徵圖。[INI] 段:定義向使用者系統中 .INI 檔案中添加的新條目。[InstallDelete] 段:定義要在安裝之前刪除的檔案或檔案夾。[Languages] 段:定義安裝程式中可使用的語言(適用於多國語言版)。[Registry] 段:定義安裝過程中要讀取、建立或刪除的登錄機碼。[Run] 段:定義要在安裝結束時啟動並執行程式。[UninstallDelete] 段:定義要在卸載時刪除的其他檔案或檔案夾。[UninstallRun] 段:定義要在開始卸載前啟動並執行程式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.