WIX窗口选择文件夹对话框

时间:2014-02-25 17:28:27

标签: browser dialog wix directory

我想知道是否有办法如何使用Windows choose folder dialog而不是真正的bad looking one作为默认值。

1 个答案:

答案 0 :(得分:1)

除此之外,您可以更改默认WiX选择文件夹对话框(属性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 - 操作后,在设置完所有目录后安排此操作,否则它将不会设置为您的值。