2014-02-25 108 views
1

我想知道是否有一種方法如何使用windows choose folder dialog而不是真正的bad looking one這是在WIX作爲默認值。WIX窗口選擇文件夾對話框

+0

這真的是個很好的問題!你可以看看[this](http://stackoverflow.com/questions/21459111/append-productname-into-installlocation)和[this](http://stackoverflow.com/questions/4491614/display-files-in -a目錄列表控制) –

回答

1

旁邊,你可以更改默認情況下使用維克斯選擇文件夾對話框(屬性WixUINewIcoWixUIUpIco),你可以在圖標:

  • 或者創建自己的對話框(如檢查this tutorial
  • 或者,如果您想要鏈接中顯示的Windows對話框,則必須創建一個自定義操作,在點擊瀏覽按鈕時打開該對話框。您可以使用例如下面的VBScript功能此:

    ' Function taken from: http://cwashington.netreach.net (that sadly closed) 
    ' Author: Jan Herman Scheffer 
    Function BrowseForFolder() 
         On Error Resume Next 
         Dim objShell, objFolder, intColonPos, objWshShell, returnerror 
         Set objShell = CreateObject("Shell.Application") 
         Set objWshShell = CreateObject("WScript.Shell") 
         Set objFolder = objShell.BrowseForFolder(&H0, "Select your folder", 514, 17) 
         BrowseForFolder = objFolder.ParentFolder.ParseName(objFolder.Title).Path 
         returnerror = err.number 
         If returnerror <> 0 Then 
          If returnerror = 424 then 
           BrowseForFolder = Null 
          else 
           intColonPos = InStr(objFolder.Title, ":") 
           If intColonPos > 0 Then 
            BrowseForFolder = Mid(objFolder.Title, intColonPos - 1, 2) & "\" 
            Session.Property("mySelectedFolder") = BrowseForFolder 
           End If 
          End If 
         End If 
    End Function 
    

有了這個功能,你就可以在選定文件夾分配給屬性,但是你需要那麼設置目錄到所選文件夾的另一個自定義操作:

<CustomAction Id="setFolder" Directory="myFolder" Value="[mySelectedFolder]" /> 

確保的CostFinalize -action後安排此動作,所有的目錄都設置之後,否則它不會被設置爲你的價值。

相關問題