翻譯|使用教程|編輯:況魚杰|2019-11-18 13:35:58.800|閱讀 2129 次
概述:安裝的一般要求是,安裝完成后啟動安裝的應用程序,通常基于用戶在類似于以下內容的完成對話框上的復選框選擇。本文將會展示安裝基本MSI和InstallScript項目類型后如何啟動應用程序。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
InstallShield是構建Windows安裝程序和MSIX包并直接在Microsoft Visual Studio中創建安裝的最快速最簡單的方法。借助InstallShield,您可以快速適應行業的變化,更快地進入市場并提供引人入勝的客戶體驗。
安裝的一般要求是,安裝完成后啟動安裝的應用程序,通常基于用戶在類似于以下內容的完成對話框上的復選框選擇。
以下各節描述了安裝基本MSI和InstallScript項目類型后如何啟動應用程序。
Windows Installer項目
對于Windows Installer項目,基本思想是在SetupCompleteSuccess對話框的完成按鈕上調用帶有控制事件的啟動EXE自定義操作。
對于Basic MSI項目,您可以在Project Assistant的Installation Interview頁面中啟用此類復選框和操作。您首先需要選擇的問題是,是否要為用戶提供安裝完成后啟動應用程序的選項? 接下來,瀏覽要啟動的可執行文件。在項目助手中,可執行文件必須已經在項目中; 在此示例中,名為sample.exe的文件已添加到目標為INSTALLDIR的組件中。
當選擇是并瀏覽到可執行文件時,InstallShield會在項目中添加一個稱做IS_LAUNCH_MY_PROGRAM_PLEASE的即時模式啟動EXE自定義操作。
該動作未出現在序列中,之后在自定義動作視圖中就不會定義安裝UI序列,安裝執行序列和相關設置。相反,該操作由附加到SetupCompleteSuccess對話框上的完成按鈕(內部稱為確定按鈕)的DoAction控件事件啟動。您可以在對話框視圖中SetupCompleteSuccess的行為節點下查看控件事件的屬性。
DoAction控件事件具有附加的條件LAUNCHPROGRAM,其中LAUNCHPROGRAM是與SetupCompleteSuccess上的CheckLaunchProgram復選框控件關聯的屬性。如果用戶在運行時選中該復選框,則將設置LAUNCHPROGRAM,并將運行啟動可執行文件的自定義操作。如果用戶未選中該復選框,則條件將失敗,并且不會啟動可執行文件。
提示:默認情況下,LAUNCHPROGRAM屬性沒有值,因此默認情況下,運行時該復選框會取消選中。要指定最初應選中此復選框,可以將LAUNCHPROGRAM添加到值為1的Property Manager視圖中。
選擇添加復選框,然后重新構建并運行安裝后,SetupCompleteSuccess對話框如下所示。
(如果您在對話框編輯器中查看SetupCompleteSuccess對話框,您會注意到啟動該應用程序的選項受兩個控件的支持,這兩個復選框控件名為CheckLaunchProgram,而文本控件名為LaunchProgramText。具有兩個控件的原因是該復選框控件不支持Transparent屬性,因此該復選框控件的文本將在白色對話框背景位圖上顯示為灰色背景。文本控件確實支持Transparent屬性,因此該選項由一個復選框,沒有文本和一個文本控件表示。)
使用戶能夠選擇是否啟動應用程序的復選框控件和文本控件具有以下復合控件條件:
SHOWLAUNCHPROGRAM="-1" And PROGRAMFILETOLAUNCHATEND<>"" And NOT Installed And NOT ISENABLEDWUSFINISHDIALOG
除其他事項外,該條件還確保該復選框僅針對首次安裝(未安裝)出現,而不針對維護操作或卸載出現。一種可能的改進是通過添加類似于&ProgramFeatureName = 3的條件,僅在選擇了包含應用程序的功能時才啟動該應用程序。
InstallScript項目
對于InstallScript項目,您可以通過修改OnFirstUIAfter事件處理程序來添加啟動應用程序的選項。默認情況下,OnFirstUIAfter事件處理程序包含一個if語句,該語句檢查是否需要重新啟動以及是否包含UpdateService支持,并顯示適當的完成對話框。 可能的完成對話框是SdFinishReboot,SdFinishUpdateEx和SdFinish。在大多數情況下,SdFinish是您要修改的對話框。
在OnFirstUIAfter的默認實現中,顯示SdFinish的if語句的分支如下所示:
SdFinish(szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);
要啟用帶有適當文本的復選框,并在用戶選中該復選框時啟動您的應用程序,您可以修改if語句的分支,使其顯示如下:
bvOpt1 = TRUE; // enable check box szOpt1 = "Launch %p"; // %p expands to product name SdFinish(szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2); if (bvOpt1) then LaunchApp(TARGETDIR ^ "sample.exe", ""); endif;
(實際上,對于szOpt1,應使用字符串表條目而不是硬編碼字符串,以簡化安裝項目的本地化。)
在運行時,對話框如下所示。
與Windows Installer項目一樣,一項增強功能是確保使用FeatureIsItemSelected僅在安裝了包含應用程序的功能時才顯示該復選框。
推薦文章:
如果您想要購買正版授權InstallShield,可以聯系咨詢相關問題。
關注慧聚IT微信公眾號???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: