下标超出范围,在VBScript中使用分割

问题描述 投票:0回答:1

我发现此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>

提前感谢。

vbscript hta
1个回答
1
投票
<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>
© www.soinside.com 2019 - 2024. All rights reserved.