Kevin专栏---自定义安装对话框的界面
編者按:其實這篇文章叫做如何修飾對話框界面或者叫做如何自定義界面元素更加確切一些,因為這并不是一篇關(guān)于如何創(chuàng)建自定義界面的文章,而是告訴你如何將自己的LOGO或者圖片加入到已有的對話框界面上
前言:
出處:http://www.cnblogs.com/installshield/archive/2010/06/28/1766664.html
對于一些InstallShield用戶或企業(yè),對于安裝包界面除了采用默認的安裝對話框外,有時可能會需要利用安裝界面這個平臺進行產(chǎn)品或企業(yè)形象宣傳,自定義安裝對話框。下面將就此需求展示如何在InstallScript,Basic MSI或InstallScript MSI工程中如何自定義安裝過程中的對話框。
安裝對話框類型:
安裝程序的安裝界面分外部對話框和內(nèi)部對話框兩類。外部對話框是指安裝前和安裝結(jié)束部分,典型的就是歡迎和結(jié)束對話框;在歡迎和結(jié)束對話框之間的其他對話框稱之為內(nèi)部對話框。
外部對話框示例(如下圖):
內(nèi)部對話框示例(如下圖)
下面將具體的工程類型介紹如何自定義對話框。
InstallScript工程類型
內(nèi)部對話框:
在InstallScript工程中,可以通過函數(shù)DialogSetInfo指定內(nèi)部對話框中顯示的資源文件(只支持bmp格式),具體操作如下:
首先需要將bmp格式(尺寸大小為499*58像素點)文件添加到Support Files/Billboards視圖中的Language Independent目錄下。如下圖
之后在事件響應(yīng)函數(shù)OnBegin中添加如下代碼:
DialogSetInfo(DLG_INFO_ALTIMAGE, SUPPORTDIR ^ "Bear_Banner.bmp", TRUE);
重新編譯釋放之后,內(nèi)部對話框中將顯示我們自定義的資源,如下圖:
外部對話框:
前邊在事件響應(yīng)函數(shù)OnBegin中調(diào)用函數(shù)DialogSetInfo的圖片資源,嵌入顯示到外部對話框中,效果如下圖:
如果不需要這張插入的圖片,可以直接在Dialog視圖中,將相應(yīng)對話框中名為ControlId_1200的控件直接刪除就可以。
在InstallScript工程中,每個外部對話框中都有一個名為ControlId_551的位圖控件,其屬性File Name指向一位圖文件(默認大小為220*370像素):
<ISProductFolder>\Script\Dialogs\BitmapId_103.bmp
可以直接在每個外部對話框中重新指定自定義的位圖文件。
之后重新編譯,效果如下圖:
涉及修改的外部對話框包括Welcome,SdWelcome,SdFinish,SdFinishReboot,SdFinishUpdate(Ex),SdFinishUpdateReboot,以及SdPatchWelcome,當然上述對話框可以根據(jù)需要有選擇的進行修改。
這樣,我們就完成了InstallScript工程的自定義對話框資源的修改。
雖然我們完成了內(nèi)部和外部對話框的自定義,但細心的用戶會發(fā)現(xiàn),在安裝初始化時,依然顯示的InstallShield的資源文件,這是因為這部分內(nèi)容是在腳本代碼運行之前顯示的,所以用戶無法修改。不過,我們可以在Release視圖中,將屬性Small Initialization Dialog的值設(shè)為Yes,現(xiàn)在在安裝初始化時將顯示小的對話框,不會加載顯示標準的位圖,修改方式見下圖:
Basic MSI工程類型:
內(nèi)部對話框:
在Basic MSI工程內(nèi)部對話框中,有一個稱作“Banner”的位圖控件,該控件的File Name屬性指向一個位圖文件(499*58的JPEG,擴展名為ibd)。默認指向:
<ISProductFolder>\Redist\Language Independent\OS Independent\IsDialogBanner.ibd
可以在Dialog視圖中,對每個內(nèi)部對話框進行修改,包括AdminChangeFolder,AdminNetworkLocation,CustomerInformation,CustomSetup,CustomSetupTips,DatabaseFolder,DestinationFolder,DiskSpaceRequirements,FilesInUse,InstallChangeFolder,LicenseAgreement,MaintenanceType,MsiRMFilesInUse,OutOfSpace,ReadyToInstall,ReadyToRemove,SetupInterrupted,SetupProgress,SetupType。
修改效果如下:
外部對話框:
在Basic MSI工程外部對話框中,有一個稱作“Image”的位圖控件,該控件的File Name屬性指向一個位圖文件(499*312的JPEG,擴展名為ibd)。默認指向:
<ISProductFolder>\Redist\Language Independent\OS Independent\ IsDialogBitmap.ibd
可以在Dialog視圖中,對每個外部對話框進行修改,包括AdminWelcome, InstallWelcome, MaintenanceWelcome,PatchWelcome, SetupCompleteError,SetupCompleteSuccess,SetupInitialization,SetupInterrupted,SetupResume,SplashBitmap。
修改后效果如下圖:
對于安裝包初始化界面中出現(xiàn)的問題,處理方式與InstallScript工程方式相同,選擇Small Initialization Dialog。
注意:對于Basic MSI工程,還有一個更方便的方式自定義界面,這就是Project Assistant,在Project Assistant的Installation Localization界面的左上角,有一個Use custom images on dialogs。通過它可以直接設(shè)置自定義的界面。
InstallScript MSI工程類型:
InstallScript MSI工程類型是間于InstallScript和Basic MSI直接的一種工程類型,其對話框部分處理方式與InstallScript相同,所以我們可以參考InstallScript工程進行設(shè)置。
外部對話框效果如下:
內(nèi)部對話框效果如下:
對于安裝包初始化界面中出現(xiàn)的問題,處理方式前兩種工程類型相同,選擇Small Initialization Dialog。
作者簡介:
萬炳宏(Kevin Wan)
InstallShield專業(yè)技術(shù)支持與咨詢師,從2003年開始使用InstallShield,有上百個項目安裝打包經(jīng)驗,經(jīng)常撰寫一些InstallShield使用操作的技術(shù)文檔,長期關(guān)注軟件打包行業(yè)發(fā)展,對于其他軟件打包工具,如InstallAnywhere,Advanced Installer,Wise,Wix,Inno Setup和NSIS等也非常熟悉,同時也在關(guān)注軟件分發(fā)部署以及應(yīng)用程序虛擬化打包等新的技術(shù)與應(yīng)用。
郵箱: kevin.wan@msn.com
技術(shù)專欄: http://www.cnblogs.com/installshield
轉(zhuǎn)載于:https://www.cnblogs.com/Cindy_weiwei/archive/2010/05/21/1740930.html
總結(jié)
以上是生活随笔為你收集整理的Kevin专栏---自定义安装对话框的界面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SPField的几种name的释疑
- 下一篇: [健康]女人喝红酒的好处