none
VendorID von Geräten RRS feed

  • Frage

  • Hallo allerseits!

    Ich wollte mal fragen ob es eine Möglichkeit gibt die VendorID's von Druckern mittels API oder WMI abzufragen.
    Es muss allerdings für jeden Anschluss (USB, LPT, WLAN, ...) funktionieren.

    Leider habe ich dies bzgl. nicht viel gefunden.
    Mit folgenden Import

    [DllImport("winspool.drv", CharSet = CharSet.Ansi, SetLastError = true)]

    kann ich zar die angeschlossene bzw. installierten Drucker abfagen, bestimmte Eigenschaften setzen wie bsp.
    Farbe/SW usw. einstellen aber nicht die Info welche ich benötige abfragen.
    Ich wäre daher für jede Hilfe sehr sehr dankbar.

     

    Lg WaZZkeSS

    Freitag, 17. Dezember 2010 07:35

Antworten

  • hast du schon einmal versucht SNMP zu verwenden.

    Die meisten Drucker unterstützen das und du bist komplett unabhängig. Du kannst alle Informationen auslesen und auch setzen.

    Freitag, 17. Dezember 2010 09:01
  • Hallo W.,

    Aus meiner Erfahrung bei Drucker-Abfragen ist es hier ggf. das sauberste, über SNMP zu gehen.
    Zwar gibt es in [WMI] Win32_Printer die DeviceID, PNPDeviceID oder bei USB-Geräten die "Vendor ID" und "Product ID" ...

    [Working with USB devices in .NET and C# - developer Fusion]
    http://www.developerfusion.com/article/84338/making-usb-c-friendly/

    aber damit sind letztlich nicht alle Drucker diesbzgl. auslesbar.
    Und im Win32_PrinterDriver.Name (oder auch über .NET System.Printing.Dll) steckt ja meist der Hersteller, aber es ist nicht die Vendor ID.

    Professionelle Hersteller von Drucker-Management-Software benutzen deswegen auch oft mehrere Methoden gleichzeitig, Wenn die eine nicht funktionioniert, wird die andere benutzt. Je nach Hersteller kommen ggf. auch andere Drucker-Protokolle zum Einsatz, sodass z.T. sogar bei einigen Herstellen andere Protokolle benutzt werden müssen.

    Zu PID und VID siehe ggf. auch:

    [Driver Developer Information on Windows Update]
    http://www.microsoft.com/whdc/winlogo/winup/default.mspx

    Ggf. ist es auch eine Möglichkeit, mit DevCon zu arbeiten:

    [Befehlszeilendienstprogramm "DevCon" als Alternative zum Geräte-Manager]
    http://support.microsoft.com/kb/311272   -> hwids 


    ciao Frank
    Freitag, 17. Dezember 2010 09:13

Alle Antworten

  • hast du schon einmal versucht SNMP zu verwenden.

    Die meisten Drucker unterstützen das und du bist komplett unabhängig. Du kannst alle Informationen auslesen und auch setzen.

    Freitag, 17. Dezember 2010 09:01
  • Hallo W.,

    Aus meiner Erfahrung bei Drucker-Abfragen ist es hier ggf. das sauberste, über SNMP zu gehen.
    Zwar gibt es in [WMI] Win32_Printer die DeviceID, PNPDeviceID oder bei USB-Geräten die "Vendor ID" und "Product ID" ...

    [Working with USB devices in .NET and C# - developer Fusion]
    http://www.developerfusion.com/article/84338/making-usb-c-friendly/

    aber damit sind letztlich nicht alle Drucker diesbzgl. auslesbar.
    Und im Win32_PrinterDriver.Name (oder auch über .NET System.Printing.Dll) steckt ja meist der Hersteller, aber es ist nicht die Vendor ID.

    Professionelle Hersteller von Drucker-Management-Software benutzen deswegen auch oft mehrere Methoden gleichzeitig, Wenn die eine nicht funktionioniert, wird die andere benutzt. Je nach Hersteller kommen ggf. auch andere Drucker-Protokolle zum Einsatz, sodass z.T. sogar bei einigen Herstellen andere Protokolle benutzt werden müssen.

    Zu PID und VID siehe ggf. auch:

    [Driver Developer Information on Windows Update]
    http://www.microsoft.com/whdc/winlogo/winup/default.mspx

    Ggf. ist es auch eine Möglichkeit, mit DevCon zu arbeiten:

    [Befehlszeilendienstprogramm "DevCon" als Alternative zum Geräte-Manager]
    http://support.microsoft.com/kb/311272   -> hwids 


    ciao Frank
    Freitag, 17. Dezember 2010 09:13