Dans WiX, j'ai un vbScript à utiliser dans une action personnalisée qui retournera ListItems des imprimantes réseau. Je veux utiliser ces ListItems pour remplir le ComboBox à l'heure d'installation parce que je ne connaîtrai pas les noms d'imprimantes sur le système d'utilisateurs avant de commencer l'installation.WiX ComboBox à remplissage dynamique
Voici le vbScript. Il sort actuellement dans un fichier texte en attendant comment travailler avec lui pour répondre à ma question.
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
Et ceci est la sortie:
<ListItem Text="\\xfiles\Canon iR3030 PCL6" Value="\\xfiles\Canon iR3030 PCL6"/>
<ListItem Text="\\xfiles\HP2110" Value="\\xfiles\HP2110"/>
J'espère pouvoir utiliser cette sortie comme ListItems pour mon 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>
S'il y a une meilleure façon ou j'approche tout faux (je continue à essayer de penser comme un développeur) s'il vous plaît ne hésitez pas à me corriger. Je suis épaisse peau ... :)