根据位置更改默认打印机

Posted

技术标签:

【中文标题】根据位置更改默认打印机【英文标题】:Change default printer based on location 【发布时间】:2008-12-20 22:52:45 【问题描述】:

我想编写一个 VBScript 来根据连接的打印机更改默认打印机。 我有一台我在工作和家里使用的笔记本电脑,我想在启动 Windows 时运行这个脚本,这样默认打印机总是正确的。 如果在 XP 中有其他方法可以做到这一点,我会全力以赴。

【问题讨论】:

【参考方案1】:

WMI 可能适合。

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "impersonationLevel=impersonate!\\" _
    & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
For Each objPrinter in colInstalledPrinters
If objPrinter.Name="SomePrinterName" Then 
    objPrinter.SetDefaultPrinter()
End If
Next

-- http://msdn.microsoft.com/en-us/library/aa394598(VS.85).aspx

您还可以找到域名等:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "impersonationLevel=impersonate!\\" _
    & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings 
    Wscript.Echo "System Name: " & objComputer.Name
    Wscript.Echo "Domain: " & objComputer.Domain
Next

-- http://msdn.microsoft.com/en-us/library/aa394586.aspx

【讨论】:

以上是关于根据位置更改默认打印机的主要内容,如果未能解决你的问题,请参考以下文章

如何更改默认打印机

更改打印机默认纸张大小

将默认打印机设置为更改名称的打印机

MS ACCESS:通过 VBA 更改默认打印机

如何使用 Excel VBA 更改系统默认打印机?

根据行位置从文本文件中打印行