当前位置 - 股票行情交易網 - 國際漫評 - vb中如何獲取系統默認打印機的名稱?

vb中如何獲取系統默認打印機的名稱?

Const HKLM = &H80000002 '定義根鍵常數

'其他常用根鍵 Const HKCR = &H80000000 , Const HKCU = &H80000001

Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"

oReg.EnumKey HKLM, strKeyPath, arrSubKeys '枚舉子項,賦值給數組arrSubKeys

For Each subkey In arrSubKeys

Print subkey

Next

For Each x In Printers

FindPrinter strPrint, x.DeviceName

next

Function FindPrinter(ByRef PrinterName As String, Optional ByVal PrinterDescription As String = "") As Boolean

' 查指定打印機

Dim objRegistry As Object

Dim arrSubKeys As Variant

Dim subkey As Variant

Dim KeyValue As Variant

If Len(PrinterDescription) > 0 Then

Set objRegistry = GetObject("winmgmts:\\.\root\default:StdRegProv")

objRegistry.EnumValues &H80000001, "Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts", arrSubKeys

For Each subkey In arrSubKeys

If InStr(1, subkey, PrinterDescription) Then

objRegistry.GetStringValue &H80000001, "Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts\", subkey, KeyValue

PrinterName = subkey & " 在 " & Mid(KeyValue, InStr(KeyValue, ",") + 1, InStr(KeyValue, ":,") - InStr(KeyValue, ","))

FindPrinter = True

Exit For

End If

Next

Set objRegistry = Nothing

End If

End Function