前言:
對於一些InstallShield使用者或企業,對於安裝包 介面除了採用預設的安裝對話方塊外,有時可能會需要利用安裝介面這個平台進行產品或企業形象宣傳,自訂安裝對話方塊。下面將就此需求展示如何在 InstallScript,Basic MSI或InstallScript MSI工程中如何自訂安裝過程中的對話方塊。
安裝對話方塊類型 :
安裝程式的安裝介面分外部對話 框和內部對話方塊兩類。外部對話方塊是指安裝前和安裝結束部分,典型的就是歡迎和結束對話方塊;在歡迎和結束對話方塊之間的其他對話方塊稱之為內部對話方塊。
外部對話方塊樣本(如下圖):
內部對話方塊樣本(如下圖)
下面將具體的工程類型介紹如何自訂對話方塊。
InstallScript 工 程類型
內部對話方塊:
在 InstallScript工程中,可以通過函數DialogSetInfo指定內部對話方塊中顯示的資源檔(只支援bmp格式),具體操作如下:
首先需要將bmp格式(尺寸大小為499*58像素點)檔案添加到Support Files/Billboards視圖中的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的資源檔,這是因為 這部分內容是在指令碼代碼運行之前顯示的,所以使用者無法修改(可以通過eXeScope修改資源檔)。不過,我們可以在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 Localization介面的左上方,有一個Use custom images on dialogs。通過它可以直接設定自訂的介面。
InstallScript MSI 工程類型:
InstallScript MSI工程類型是間於InstallScript和Basic MSI直接的一種工程類型,其對話方塊部分處理方式與InstallScript相同,所以我們可以參考InstallScript工程進行設定。
外部對話方塊效果如下:
內部對話方塊效果如下:
對於安裝包初始化介面中出現的問題,處理方式前兩種工程類型相同,選擇Small Initialization Dialog。