0

我在創建必須打開文件瀏覽器的工作中創建安裝程序。 wix中沒有文件瀏覽器,所以我構建了一個使用Shell.BrowseForFolder方法的自定義vbscript操作。它工作正常,但文件對話框顯示在主wix窗口後面。有人知道我可以採取一種wix/vbscript方法來解決這個問題嗎?vBScript中的FileOpenDialog自定義操作出現在主對話框後面

回答

1

找到MSI用戶界面的HWND並將其傳遞到Shell.BrowseForFolder。我看到一些使用FindWindow的示例解決方案(「MsiDialogCloseClass」,vbNullString)。注意從自定義操作啓動用戶界面:您需要考慮靜默安裝/修復/卸載等,以確保您在任何情況下都能正確使用。

它看起來像你試圖讓用戶選擇一個目錄。 MSI對此有本地支持。我建議你使用它。有關示例,請參閱http://wix.codeplex.com/SourceControl/latest#src/ext/UIExtension/wixlib/BrowseDlg.wxs

+0

感謝您的快速響應!我試圖讓用戶選擇一個特定的文件,而不僅僅是目錄,所以我認爲我需要自定義操作。我對wix和與msi有關的所有事情都很新,你能告訴我如何找到HWND,以及如何將它傳遞給vbScript函數? – user2437443

+0

MSI不公開HWND,因此您需要自行找到它。在這裏缺乏微星的知識不應該阻礙你。正如我所提到的,使用FindWindow按名稱定位窗口。或者,您可以枚舉系統上的窗口以找到符合您期望的標準(標題,進程ID等)的窗口。由於可用的有限的表面積,您可能會發現VBScript真的限制了您在這裏做得很多的能力。 – TheESJ