В WiX У меня есть vbScript для использования в пользовательском действии, которое вернет ListItems сетевых принтеров. Я хочу использовать эти ListItems для заполнения ComboBox во время установки, потому что я не буду знать имена принтеров в системе пользователей до начала установки.WiX Dynamicically Populated ComboBox
Это vbScript. В настоящее время он выводит на текстовый файл, ожидая, как работать с ним, чтобы ответить на мой вопрос.
Const ForWriting = 2
Set objNetwork = CreateObject("Wscript.Network")
strName = objNetwork.UserName
strDomain = objNetwork.UserDomain
strUser = strDomain & "\" & strName
strText = ""
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery _
("Select * From Win32_Printer Where Local = FALSE")
For Each objPrinter in colPrinters
strText = strText & "<ListItem Text=""" & objPrinter.Name &""" Value="""& objPrinter.Name &"""/>" & vbcrlf
Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile _
("C:\Scripts\Printers.txt", ForWriting, True)
objFile.Write strText
objFile.Close
И это выход:
<ListItem Text="\\xfiles\Canon iR3030 PCL6" Value="\\xfiles\Canon iR3030 PCL6"/>
<ListItem Text="\\xfiles\HP2110" Value="\\xfiles\HP2110"/>
Я надеюсь, чтобы иметь возможность использовать этот вывод, как ListItems для моего ComboBox.
<Control Type="ComboBox" Property="cboPrinters_Prop" Id="cboPrinters" Width="206" Height="16" X="19" Y="139" ComboList="yes">
<ComboBox Property="cboPrinters_Prop">
<ListItem Text="" Value=""/>
</ComboBox>
</Control>
Если есть лучший способ или я приближаюсь все это неправильно (я продолжаю пытаться думать, как разработчик), пожалуйста, не стесняйтесь исправлять меня. Я толстый skinned ... :)