Standard Drucker Zuweisung

  • Hallo,

    ich brauch mal eure Hilfe. Mit dem unteren Codeschnipsel weiße ich meinem PC, je nachdem ob er sich zu Hause oder in der Firma befindet einen Standard Drucker zu. Das sind jeweils die oberen und unteren _WinAPI_SetDefaultPrinter Zeilen.

    Ich habe jetzt meine Drucker zu Hause, der bisher via USB an einer QNAP NAS gehangen ist umgezogen. Der Drucker hängt jetzt an einer Fritzbox 6490. Die Anbindung ging dort via IP und Port 9100.

    Leider habe ich keinen Plan, wie ich diese Drucker jetzt ansprechen muss (also die mittlere Zeile). Wo kann ich dass denn sauber auslesen unter Windows 10?

    Code
    If $sLocation = "Home" Then ; wenn Du im Homeoffice bist, sind dies die Koordinaten der Anwendung
    _WinAPI_SetDefaultPrinter("\\http://192.168.1.168:631\QNAPPR3") #diese Zeile geht
    _WinAPI_SetDefaultPrinter("\\192.168.1.3:9100\Samsung ML-2010R") #diese Zeile geht noch nicht
    Else ; ansonsten sind dies die Koordinaten der Anwendung
    _WinAPI_SetDefaultPrinter("\\s00-edo\My Printer")#diese Zeile geht in der Firma
    EndIf

    Vielen Dank

  • Hi,

    teste mal die Funktion _PrintMgr_EnumPrinter aus der UDF von hier: https://www.autoitscript.com/forum/topic/15…comment=1468840

    In der Firma löse ich das Problem diverser User mit "eigenen" Druckern aber gleichem Programm/Script folgendermaßen, allerdings unter VBA .

    Jeder der User hat, jeweils mit eigen zugewiesenen Ports und ggf. auch unterschiedlichen Druckerumgebungen, bspw. einen Etikettendrucker "Zebra BlaBlubunterschiedlichesModellBlaBlub".

    Ich hole mir per WMI einfach ALLE bei diesem User verfügbaren Drucker und suche in der Liste nur nach dem Hersteller, bspw. "Zebra". Die Modellnummer, Port, uswusf. hängt ja automatisch in der Liste/ im zurückgegebenen String, mit an.

    Dieser Drucker wird dann für den Etikettendruck verwendet oder auch der Standard-Drucker, je nach Anforderung.

    Drucke auf Normalpapier laufen dann auf den "Toshiba" oder "OKI", wiederum ohne Angabe von Modellnummer, Port usw.

    Zur Not kann sich der User aus der Liste den entsprechenden Drucker auswählen.

    Somit habe ich als Scriptersteller nicht mehr die A-Karte, sondern der Admin, welcher nun genötigt ist, seinen Druckerpool mitsamt der Freigaben der einzelnen Mitarbeiter sauber zu halten.

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (21. November 2020 um 07:05)