我发现此VBScript在HTA应用程序中显示默认打印机的名称。只要有默认打印机集,它就可以正常工作,但是当我在新的用户负载下运行它时(当绝对没有任何内容设置为默认打印机时),它将出现错误:
下标超出范围:'[number:0]'
有什么办法解决这个问题?
<SCRIPT Language="VBScript">
dim defaultprn
Set WshShell = CreateObject("WScript.Shell")
defaultprn = WshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device")
arrPrnStr = Split(defaultprn,",")
fullPrinterString = arrPrnStr(0)
arrFullPrnStr = Split(fullPrinterString,"\")
shortPrinterName= arrFullPrnStr(Ubound(arrFullPrnStr))
document.write("Default printer: " + shortPrinterName)
If shortPrinterName="Fax" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft XPS Document Writer" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2013" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft Print to PDF" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft XPS Document Write" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft Document Image Writer" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft Office Document Image Writer" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2005" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2006" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2007" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2008" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2009" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2010" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2011" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2012" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2013" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2014" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2015" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2016" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2017" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2018" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2019" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2020" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2021" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2022" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2023" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2024" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2025" Then
changedefaultprinter()
ElseIf shortPrinterName="OneNote" Then
changedefaultprinter()
ElseIf shortPrinterName=Empty Then
changedefaultprinter()
ElseIf shortPrinterName=Null Then
changedefaultprinter()
End If
</script>
提前感谢。
<SCRIPT Language="VBScript">
dim defaultprn
Set WshShell = CreateObject("WScript.Shell")
defaultprn = WshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device")
if defaultprn <> "" Then
arrPrnStr = Split(defaultprn,",")
fullPrinterString = arrPrnStr(0)
arrFullPrnStr = Split(fullPrinterString,"\")
shortPrinterName= arrFullPrnStr(Ubound(arrFullPrnStr))
document.write("Default printer: " + shortPrinterName)
If shortPrinterName="Fax" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft XPS Document Writer" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2013" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft Print to PDF" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft XPS Document Write" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft Document Image Writer" Then
changedefaultprinter()
ElseIf shortPrinterName="Microsoft Office Document Image Writer" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2005" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2006" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2007" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2008" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2009" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2010" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2011" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2012" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2013" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2014" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2015" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2016" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2017" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2018" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2019" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2020" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2021" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2022" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2023" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2024" Then
changedefaultprinter()
ElseIf shortPrinterName="Send To OneNote 2025" Then
changedefaultprinter()
ElseIf shortPrinterName="OneNote" Then
changedefaultprinter()
ElseIf shortPrinterName=Empty Then
changedefaultprinter()
ElseIf shortPrinterName=Null Then
changedefaultprinter()
Else
document.write("Default printer: " + "None")
End if
End If
</script>