2012-04-17 40 views
1

我使用InstallShield 2012 Professional創建基本MSI項目。我的問題涉及如何執行由用戶與對話交互引起的自定義操作。從InstallShield中的用戶交互執行自定義操作(基本MSI項目)

我一直在做研究,但我只是沒有得到正確的設置組合,使其工作。我已經獲得了自定義操作來執行,但在它甚至獲得用戶交互之前。

安裝完成後,標準的「SetupCompleteSuccess」對話框顯示,我添加了一個複選框,以便用戶可以選擇查看一些html發行說明,當他們單擊完成按鈕時除了啓動程序。程序啓動完美,並在項目助理嚮導中設置。

Checkbox setup in dialog

在對話框中,我設置的複選框屬性LAUNCHRELEASENOTES設置爲1,在對話框的行爲我設定的完成(又名OK)一DoAction按鈕來執行自定義操作「OpenReleaseNotes」如果條件LAUNCHRELEASENOTES = 1是真的。

Button behavior.

在我創作的「OpenReleaseNotes」自定義操作,在那裏我可能搞亂了幾招,我使其啓動可執行文件(在這種情況下,CMD.EXE只是調用DOS命令)打開html發行說明。我完全不清楚自定義操作中的什麼組合設置需要在安裝結束時通過用戶交互來執行。

Custom Action

應當如何進行這些自定義操作來設置?

  • 退貨處理
  • 在腳本執行
  • 執行調度
  • 安裝UI序列
  • 安裝執行順序
  • 安裝執行條件(如適用)

回答

2

ControlEvents有操作順序。右鍵單擊「EndDialog」控件事件並選擇向下移動,以便在您的自定義操作後執行它。

+0

事實確實如此。在對話框行爲部分的「確定」按鈕系列控件事件中,將「EndDialog」放在最下面,知道該列表按照操作順序非常有價值。非常感謝。對於那些跟隨你的人,我犯了一些其他更小的錯誤,即將自定義行爲的條件設置爲「LAUNCHRELEASENOTES = 1」而不是「LAUNCHRELEASENOTES」。我在自定義操作中的命令行也需要一些幫助。再次感謝你。 – GNat 2012-04-19 11:43:33

+0

FWIW,這對於Installshield來說是一個糟糕的用戶界面。底層ControlEvent表具有Order列,但InstallShield將其表示爲有序列表並隱藏實際順序。這不是直觀的,除非有人向你展示,否則會讓你撞到牆上。我會保留它們現在具有的功能,但也顯示訂單欄並使其可編輯。 – 2012-04-19 13:12:47

相關問題