HCL Notes / Domino / Diverses > Entwicklung

Liste aller installierten Drucker erhalten

(1/1)

FrankLU:
Hallo!

Nachdem ich mit einer Function GetProfileString unter Verwendung der Kernel32.dll den Standarddrucker ermitteln kann, bräuchte ich nun einen Aufruf, um eine Liste aller installierten Drucker auf einem PC zu erhalten.

In den bisherigen Beiträgen habe ich nichts gefunden, ohne auf eine Funktion eines Zweitprogramms zuzugreifen (NotesToPaper oder MS Word).

Gibt es eine Funktion in einer Windows DLL, die mir eine Liste der Drucker liefern könnte?
Kann man auch PowerShell-Befehle absetzen, die einen Ausgebwert direkt in eine Variable in einem LS zurückliefern? Mit einem Shell-Aufruf einen PowerShell-Befehl abzusetzen, der eine Druckerliste in einer Textdatei speichert, die man dann per LS wieder einliest, ist mir zu unelegant.

Vielen Dank schon mal für die Unterstützung und ein schönes Wochenende!
Frank

jBubbleBoy:
Dafür benötigst Du diese Beschreibung:
https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-tasks--printers-and-printing

Bzw. sieht das in Notes dann so aus:

--- Code: ---Dim objWMIService, colInstalledPrinters, strComputer$

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery ("Select * from Win32_Printer")

ForAll objPrinter In colInstalledPrinters
Print objPrinter.name
End ForAll

--- Ende Code ---

FrankLU:
Hallo Erik,

ich habe diese Art des Zugriffs auch gleich für die Feststellung des Standard-Druckers übernommen, wie sie in dem von Dir mitgeschickten Link enthalten ist. Das vereinheitlicht die Sache.

Vielen Dank für die Lösung!

Frank

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln