版權聲明: 可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息。
前言:
對于一些InstallShield用戶或企業,對于安裝包界面除了采用默認的安裝對話框外,有時可能會需要利用安裝界面這個平臺進行產品或企業形象宣傳,自定義安裝對話框。下面將就此需求展示如何在InstallScript,Basic MSI或InstallScript MSI工程中如何自定義安裝過程中的對話框。
安裝對話框類型 :
安裝程序的安裝界面分外部對話框和內部對話框兩類。外部對話框是指安裝前和安裝結束部分,典型的就是歡迎和結束對話框;在歡迎和結束對話框之間的其他對話框稱之為內部對話框。
外部對話框示例(如下圖):
內部對話框示例(如下圖)
下面將具體的工程類型介紹如何自定義對話框。
InstallScript工程類型
內部對話框:
在InstallScript工程中,可以通過函數DialogSetInfo指定內部對話框中顯示的資源文件(只支持bmp格式),具體操作如下:
首先需要將bmp格式(尺寸大小為499*58像素點)文件添加到Support Files/Language Independent目錄下。如下圖
之后在事件響應函數OnBegin中添加如下代碼:
DialogSetInfo(DLG_INFO_ALTIMAGE, SUPPORTDIR ^ "Bear_Banner.bmp", TRUE);
重新編譯釋放之后,內部對話框中將顯示我們自定義的資源,如下圖:
外部對話框:
前邊在事件響應函數OnBegin中調用函數DialogSetInfo的圖片資源,嵌入顯示到外部對話框中,效果如下圖:
如果不需要這張插入的圖片,可以直接在Dialog視圖中,將相應對話框中名為 ControlId_1200 的控件直接刪除就可以。
在InstallScript工程中,每個外部對話框中都有一個名為 ControlId_551 的位圖控件,其屬性File Name指向一位圖文件(默認大小為220*370像素):
<ISProductFolder>\Script\Dialogs\BitmapId_103.bmp
可以直接在每個外部對話框中重新指定自定義的位圖文件。
之后重新編譯,效果如下圖:
涉及修改的外部對話框包括Welcome,SdWelcome,SdFinish,SdFinishReboot,SdFinishUpdate(Ex),SdFinishUpdateReboot,以及SdPatchWelcome,當然上述對話框可以根據需要有選擇的進行修改。
這樣,我們就完成了InstallScript工程的自定義對話框資源的修改。
雖然我們完成了內部和外部對話框的自定義,但細心的用戶會發現,在安裝初始化時,依然顯示的InstallShield的資源文件,這是因為這部分內容是在腳本代碼運行之前顯示的,所以用戶無法修改。不過,我們可以在Release視圖中,將屬性Small Initialization Dialog的值設為Yes,現在在安裝初始化時將顯示小的對話框,不會加載顯示標準的位圖,修改方式見下圖:
Basic MSI工程類型:
內部對話框:
在Basic MSI工程內部對話框中,有一個稱作“Banner”的位圖控件,該控件的File Name屬性指向一個位圖文件(499*58的JPEG,擴展名為ibd)。默認指向:
<ISProductFolder>\Redist\Language Independent\OS Independent\IsDialogBanner.ibd
可以在Dialog視圖中,對每個內部對話框進行修改,包括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。
修改后效果如下圖:
對于安裝包初始化界面中出現的問題,處理方式與InstallScript工程方式相同,選擇Small Initialization Dialog。
注意 :對于Basic MSI工程,還有一個更方便的方式自定義界面,這就是Project Assistant,在Project Assistant的Installation Interview界面的左上角(謝謝 Fanjing 的校正),有一個Use custom images on dialogs。通過它可以直接設置自定義的界面。
InstallScript MSI
?
InstallScript MSI工程類型是間于InstallScript和Basic MSI直接的一種工程類型,其對話框部分處理方式與InstallScript相同,所以我們可以參考InstallScript工程進行設置。
外部對話框效果如下:
內部對話框效果如下:
對于安裝包初始化界面中出現的問題,處理方式前兩種工程類型相同,選擇Small Initialization Dialog。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
