none
installierte Netzwerkdrucker ermitteln RRS feed

  • Frage

  • Hallo zusammen,

    gibt es eine Möglichkeit in C#, die lokal angebundenen Netzwerkdrucker zu ermitteln?
    Mit PrinterSettings.InstalledPrinters kann ich zwar alle Drucker ermitteln, aber nicht unterscheiden, ob es ein lokaler Drucker oder ein Drucker im Netzwerk ist.

    Danke vorab

    Gruß Berto Latten

    Donnerstag, 21. November 2013 16:34

Antworten

  • Hallo,
    mit Hilfe der WMI ist das möglich. Siehe hier.

    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Donnerstag, 21. November 2013 16:48
    Moderator
  • Hallo... Hier ein Code-Ausschnitt, welcher in zwei separaten Combo-Boxen die Drucker anzeigt. In der ersten Combo-Box werden die lokalen Drucker angezeigt, in der zweiten jene im Network.

    using System;
    using System.Windows.Forms;
    using System.Management;
    
    private void PrinterList()
    {
        // USING WMI. (WINDOWS MANAGEMENT INSTRUMENTATION)
    
        System.Management.ManagementScope objMS = 
            new System.Management.ManagementScope(ManagementPath.DefaultPath);
        objMS.Connect();
    
        SelectQuery objQuery = new SelectQuery("SELECT * FROM Win32_Printer");
        ManagementObjectSearcher objMOS = new ManagementObjectSearcher(objMS, objQuery);
        System.Management.ManagementObjectCollection objMOC = objMOS.Get();
        foreach (ManagementObject Printers in objMOC)
        {
            if (Convert.ToBoolean(Printers["Local"]))       // LOCAL PRINTERS.
            {
                cmbLocalPrinters.Items.Add(Printers["Name"]);
            }
            if (Convert.ToBoolean(Printers["Network"]))     // ALL NETWORK PRINTERS.
            {
                cmbNetworkPrinters.Items.Add(Printers["Name"]);
            }
        }
    }

    Freitag, 22. November 2013 07:10

Alle Antworten