Outlook Standardrucker ermitteln
Grüezi Nuclaus,
Die zwei Makros kommen mir zwar spanisch vor: Ich versteh kaum
ein „Wort“. Aber beide funktionieren!
Anton oder Antoine *gg* hat wieder Code gezaubert, diesesmal wird der Drucker samt „auf LPT1“ o.ä. angezeigt.
Glaub mal nicht daß ich den Code komplett verstehe )
Getestet auf OL2007 und XL2000.
Public Sub active\_drucker()
'Standarddrucker ermitteln
Dim objWMI As Object, objItem As Object, sd As String, oReg
Dim strKeyPath, arrValueNames, i, strValue, msg
Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). \_
ExecQuery("Select \* from Win32\_Printer where Default = 'true'")
For Each objItem In objWMI
sd = objItem.properties\_.Item("Name").Value
Next
Set objWMI = Nothing
Const HKEY\_current\_user = &H80000001
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Devices"
oReg.EnumValues HKEY\_current\_user, strKeyPath, arrValueNames
For i = 0 To UBound(arrValueNames)
oReg.GetStringValue HKEY\_current\_user, strKeyPath, arrValueNames(i), strValue
If InStr(1, arrValueNames(i), sd) 0 Then
msg = arrValueNames(i) & Replace(strValue, "winspool,", " auf ")
End If
Next
Set oReg = Nothing
MsgBox msg, vbInformation, "ActiveDrucker"
End Sub
Gruß
Reinhard