我已经设置了一个VBScript hta,让我的用户选择默认打印机。 我目前正试图在视觉上尽可能清楚。
如果可能,我想隐藏列出的每台网络打印机前面的打印服务器地址。
E.g。 diaglogue框当前为每台打印机显示'\\ SERVPRT2 \ Printer_Name',但我希望它只显示'Printer_Name'。或者,如果那是不可能的,那么可能只是用更微妙的颜色格式化剩余文本。
我在下面列出了我的代码 - 是否有人知道这是否可行?非常感谢
<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>
答案 0 :(得分:0)
为此,您只需要从显示的名称(Text
属性)中删除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>