3 Stimmen

Holen Sie sich die Liste der lokalen Drucker, um die Drucker-IP und den Standarddrucker zu ändern

Wie kann ich alle lokalen Drucker des Rechners finden, auf dem das Programm mit einem Benutzer läuft, der keine Admin-Rechte hat? Ich muss die Drucker-IP neu zuordnen und den Drucker als Standard einrichten. Meine Idee ist es, eine Maskierung zu verwenden, um dies zu tun, aber ich weiß nicht, wo ich den Drucker finden soll und ob es eine gute Lösung ist, eine Maskierung zu verwenden.

Vielen Dank für jede Hilfe!

2voto

sra Punkte 23700

Ich denke nicht, dass du damit Erfolg haben wirst. Die Personifizierung wird hier nicht funktionieren und nur eine Ausnahme werfen. Du kannst es versuchen, indem du eine Personifizierung erstellst und versuchst, Environment.Domain zu öffnen, es sollte eine Ausnahme geben.

Du kannst etwas Ähnliches wie dies ohne Personifizierung versuchen:

ManagementScope mscope = new ManagementScope(@"\root\CIMV2", options);
mscope.Connect();
System.Management.ObjectQuery oQuery = new ObjectQuery("Select * from Win32_TCPIPPrinterPort");
System.Management.ManagementObjectSearcher searcher = new ManagementObjectSearcher(mscope, oQuery);
ManagementObjectCollection moCollection = searcher.Get();

foreach (ManagementObject mo in moCollection)
{
    string name = mo["Name"].ToString();

    if (name.Equals(this.portName))
    {
        System.Threading.Thread.Sleep(10000);
        mo["HostAddress"] = this.printerIP;
        mo.Put();
        Console.WriteLine("Druckeranschluss auf neue IP-Adresse geändert " + this.printerIP);
        return true;
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X