2010-09-01 65 views
0

如何顯示,請等待對話框,而EXEC()靜默地運行另一個應用程序。如何在EXEC()函數中顯示請等待對話框

+0

你的意思是在PHP中,因爲你的標籤是inno-setup。請添加更多細節。 – 2010-09-01 13:18:12

+0

@JapanPro:我沒有看到這與PHP有什麼關係。 – 2010-09-02 21:04:02

回答

1

你真的需要它成爲一個消息框嗎?正如您可能知道的那樣,您可以在安裝過程中運行外部* .exe,並同時顯示自定義狀態消息。 (狀態消息將在安裝過程中的正常進度標籤上。)

我有安裝產品A的setup.exe。此setup.exe包含setup2.exe文件,用於設置產品B. setup.exe在安裝產品A期間將setup2.exe複製到Program Files文件夾。當所有文件都被複制後,setup.exe會在後臺啓動setup2.exe。爲了達到這個目的,我做了

[Run] 
Filename: "{app}\setup2.exe"; StatusMSG: "Installing Product 2..."; Parameters: "/VERYSILENT /SUPPRESSMSGBOXES" 

在setup.iss(編譯爲setup.exe)。 setup2.exe也是Inno Setup安裝程序,因此參數「/ VERYSILENT/SUPPRESSMSGBOXES」將使產品2的安裝無聲。在此設置期間,setup.exe將顯示消息「安裝產品2 ...」。

如果你確實需要一個消息框來彈出狀態消息,你將不得不求助於Pascal腳本。

+0

謝謝,我使用EXEC()函數,可以以某種方式顯示狀態信息與帕斯卡? – Tom 2010-09-02 06:21:26

+0

@Tom:你真的需要使用'Exec'函數嗎?爲什麼不能使用'[Run]'項目呢?我能想到的一個原因是你需要有條件地執行程序,也就是說,如果ShouldExecute then Exec(...);',其中'ShouldExecute'是一個布爾值函數。但'[Run]'項目也可以是有條件的;只需添加'Check:ShouldExecute'即可。請參閱http://www.jrsoftware.org/ishelp/topic_scriptcheck.htm – 2010-09-02 20:41:48

2

您可以使用ProgressOutputWizardPage,它對我來說工作得很好,這並不完全複雜。您可以參考CodeDlg.iss示例。