ich suche nach einer Möglichkeit alle verfügbaren Drucker auszulesen.
Hintergrund ist, dass sich in unserem Netzwerk die Druckernamen häufig ändern, so daß fix codierte Namen nicht funktionieren.
Vielen Dank für Hinweise!
Gruß
Matthias
Public Sub Drucker_ports_auslesen()
Dim WshNetwork
Dim oPrinters
Dim i As Integer
Set WshNetwork = CreateObject("WScript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
For i = 0 To oPrinters.Count - 1 Step 2
Debug.Print oPrinters.Item(i + 1)
Next
End Sub
Sub StartPrinterInfo()
MsgBox Get_Printer("LaserJet", "USB")
End Sub
Function Get_Printer(myPrinter As String, myPort As String) As String
Dim WshNetwork As Object
Dim instPrinters As Object
Dim i As Integer
Dim tmpPrinter As String
Set WshNetwork = CreateObject("WScript.Network")
Set instPrinters = WshNetwork.EnumPrinterConnections
For i = 0 To instPrinters.Count - 1 Step 2
tmpPrinter = instPrinters.Item(i + 1) & " an " & instPrinters.Item(i)
Debug.Print tmpPrinter
If InStr(1, tmpPrinter, myPrinter) > 0 And InStr(1, tmpPrinter, myPort) > 0 Then
Get_Printer = tmpPrinter
Exit Function
End If
Next
Get_Printer = "Not Found"
End Function
Option Explicit
Public Sub Drucker_ports_auslesen()
Dim WshNetwork
Dim oPrinters
Dim i As Integer
Set WshNetwork = CreateObject("WScript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
For i = 0 To oPrinters.Count - 1 Step 2
Debug.Print oPrinters.Item(i) & " --> " & oPrinters.Item(i + 1)
Next
End Sub