Vbscript 在特定列表文本上设置文本颜色
我已经设置了VBScript hta,让用户选择默认打印机。 我目前正试图在视觉上尽可能清晰地表达出来 如果可能,我想从列出的每台网络打印机的正面隐藏打印服务器地址 例如,Dialogue框当前显示每台打印机的“\\SERVPRT2\Printer\u Name”,但我希望它只显示“Printer\u Name”。或者,如果这是不可能的话,那么也许只是格式化多余的文本与更微妙的颜色 我在下面列出了我的代码——有人知道这是否可行吗?非常感谢Vbscript 在特定列表文本上设置文本颜色,vbscript,hta,Vbscript,Hta,我已经设置了VBScript hta,让用户选择默认打印机。 我目前正试图在视觉上尽可能清晰地表达出来 如果可能,我想从列出的每台网络打印机的正面隐藏打印服务器地址 例如,Dialogue框当前显示每台打印机的“\\SERVPRT2\Printer\u Name”,但我希望它只显示“Printer\u Name”。或者,如果这是不可能的话,那么也许只是格式化多余的文本与更微妙的颜色 我在下面列出了我的代码——有人知道这是否可行吗?非常感谢 <html> <head&g
<html>
<head>
<title>Choose your default printer</title>
<style type="text/css">
body {
font-family:Verdana;
font-size: 12px;
color: #49403B;
background: #FFFFFF;
text-align: center;
}
</style>
<SCRIPT Language="VBScript">
Sub Window_Onload
window.resizeTo 500,550
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")
For Each objPrinter in colPrinters
strPrinter = objPrinter.Name
Set objOption = Document.createElement("OPTION")
objOption.Text = strprinter
objOption.Value = strPrinter
AvailablePrinters.Add(objOption)
Next
End Sub
Sub SetDefault
strPrinter = AvailablePrinters.Value
Set WshNetwork = CreateObject("Wscript.Network")
WshNetwork.SetDefaultPrinter strPrinter
Msgbox strprinter & " has been set as your default printer."
End Sub
</SCRIPT>
Select your default printer, then click the button below<p>
<select size="20" name="AvailablePrinters"></select><p>
<input type="button" value="Set as Default" onClick="SetDefault">
<p>
Close this window after setting a printer as default<p>
为此,只需从显示的名称文本属性中删除printserver。正则表达式替换可能是实现这一点的最佳方法:
Set re = New RegExp
re.Pattern = "^\\\\.*?\\"
For Each objPrinter in colPrinters
strPrinter = objPrinter.Name
Set objOption = Document.createElement("OPTION")
objOption.Text = re.Replace(strprinter, "")
objOption.Value = strPrinter
AvailablePrinters.Add(objOption)
Next
请注意,当不同的打印服务器上存在同名打印机队列时,这可能会导致用户混淆
另外,我想为您的代码推荐一些可用性改进:
预先选择默认打印机,以便用户查看当前默认打印机:
For Each objPrinter in colPrinters
strPrinter = objPrinter.Name
Set objOption = Document.createElement("OPTION")
objOption.Text = re.Replace(strprinter, "")
objOption.Value = strPrinter
If objPrinter.Default Then objOption.Selected = True
AvailablePrinters.Add(objOption)
Next
选择更改时自动更改默认打印机,并删除“设置为默认”按钮。这减少了用户的点击次数
<select size="20" name="AvailablePrinters" onChange="SetDefault"></select>
安斯加,你太棒了!这项工作做得很完美,你的补充也很棒,正是我所需要的。真的很高兴少点击需要!还有一个问题-你知道是否可以按名称对打印机进行排序,以便它们按名称顺序排列吗?非常感谢,杰兹