Ermittlung von Druckern und Scannern



  • G' Morgen,

    wie kann ich unter Linux mit Hilfe von C/C++ alle Drucker und Scanner ermitteln? In Windows gibt es hierfür diverse Betriebssystemfunktionen (WinApi). Ich habe im Netz schon gesehen, dass evtl. über CUPS etwas zu machen ist, konkrete Beispiele habe ich leider nicht gefunden.

    Wie sieht es mit Scannern aus? Laufen reguläre Twainscanner unter Linux? Wia-Scanner vermutlich nicht, oder doch?

    Frameworks wie Qt & Co. kann ich leider nicht nutzen, es muss also reines C/C++ sein.

    Kann jemand helfen?

    VG Torsten



  • @TorDev lpstat stellt doch via Kommandozeile genau das zur Verfügung, oder? Ich würde mal gucken, wie die das machen



  • Hallo,

    okay, danke. Das schaue ich mir mal genauer an.

    VG Torsten



  • Der einzig sinnvolle Weg ist es CUPS und SANE zu nutzen.

    Das CUPS Einführungsbeispiel aus der Doku löst schon Dein Problem.

    #include <stdio.h>
    #include <cups/cups.h>
    
    int print_dest(void *user_data, unsigned flags, cups_dest_t *dest) {
      if (dest->instance)
        printf("%s/%s\n", dest->name, dest->instance);
      else
        puts(dest->name);
    
      return (1);
    }
    
    int main(void) {
      cupsEnumDests(CUPS_DEST_FLAGS_NONE, 1000, NULL, 0, 0, print_dest, NULL);
    
      return (0);
    }
    

    Analog dazu muss man via SANE sane-get-device die Liste der Scanner abfragen.



  • @john-0 : Danke, das schaue ich mir zeitnah genauer an. Erst muss ich das Linken gegen die stdc++fs hinbekommen.

    VG Torsten


Anmelden zum Antworten