Freigeben über


Gewusst wie: Klonen eines Druckers

Aktualisiert: November 2007

Die meisten Unternehmen kaufen zu einem bestimmten Zeitpunkt mehrere Drucker vom gleichen Modell. In der Regel sind alle mit praktisch identischen Konfigurationseinstellungen installiert. Jeden Drucker zu installieren, kann zeitaufwendig und fehleranfällig sein. Der System.Printing.IndexedProperties-Namespace und die InstallPrintQueue-Klasse, die mit Microsoft .NET Framework verfügbar gemacht werden, ermöglichen die sofortige Installation einer beliebigen Zahl von zusätzlichen Druckwarteschlangen, die von einer vorhandenen Druckwarteschlange geklont werden.

Beispiel

Im folgenden Beispiel wird eine zweite Druckwarteschlange von einer vorhandenen Druckwarteschlange geklont. Die zweite unterscheidet sich von der ersten nur durch ihren Namen, Standort, Anschluss und Freigabestatus. Die wichtigsten Schritte diese Vorgehensweise sind:

  1. Erstellen Sie ein PrintQueue-Objekt für den vorhandenen Drucker, der geklont wird.

  2. Erstellen Sie ein PrintPropertyDictionary aus der PropertiesCollection der PrintQueue. Die Value-Eigenschaft für jeden Eintrag in diesem Wörterbuch ist ein Objekt, das zu einem der von PrintProperty abgeleiteten Typen gehört. Es gibt zwei Möglichkeiten, den Wert eines Eintrags in dieses Wörterbuch festzulegen.

    • Verwenden Sie die Remove-Methode und die Add-Methode des Wörterbuchs, um den Eintrag zu entfernen und ihn dann mit dem gewünschten Wert wieder hinzuzufügen.

    • Verwenden Sie die SetProperty-Methode des Wörterbuchs.

    Im Beispiel unten werden beide Methoden veranschaulicht.

  3. Erstellen Sie ein PrintBooleanProperty-Objekt, und legen Sie Name für das Objekt auf "IsShared" und Value auf true fest.

  4. Verwenden Sie das PrintBooleanProperty-Objekt als Wert des "IsShared"-Eintrags für das PrintPropertyDictionary.

  5. Erstellen Sie ein PrintStringProperty-Objekt, und legen Sie Name für das Objekt auf "ShareName" und Value auf einen entsprechenden String-Wert fest.

  6. Verwenden Sie das PrintStringProperty-Objekt als Wert des "ShareName"-Eintrags für das PrintPropertyDictionary.

  7. Erstellen Sie ein weiteres PrintStringProperty-Objekt, und legen Sie Name für das Objekt auf "Location" und Value auf einen entsprechenden String-Wert fest.

  8. Verwenden Sie das zweite PrintStringProperty-Objekt als Wert des "Location"-Eintrags für das PrintPropertyDictionary.

  9. Erstellen Sie ein String-Array. Jedes Element ist der Name eines Anschlusses auf dem Server.

  10. Verwenden Sie InstallPrintQueue, um den neuen Drucker mit den neuen Werten zu installieren.

Im Folgenden ein Beispiel.

LocalPrintServer myLocalPrintServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue sourcePrintQueue = myLocalPrintServer.DefaultPrintQueue;
PrintPropertyDictionary myPrintProperties = sourcePrintQueue.PropertiesCollection;

// Share the new printer using Remove/Add methods
PrintBooleanProperty shared = new PrintBooleanProperty("IsShared", true);
myPrintProperties.Remove("IsShared");
myPrintProperties.Add("IsShared", shared);

// Give the new printer its share name using SetProperty method
PrintStringProperty theShareName = new PrintStringProperty("ShareName", "\"Son of " + sourcePrintQueue.Name +"\"");
myPrintProperties.SetProperty("ShareName", theShareName);

// Specify the physical location of the new printer using Remove/Add methods
PrintStringProperty theLocation = new PrintStringProperty("Location", "the supply room");
myPrintProperties.Remove("Location");
myPrintProperties.Add("Location", theLocation);

// Specify the port for the new printer
String[] port = new String[] { "COM1:" };


// Install the new printer on the local print server
PrintQueue clonedPrinter = myLocalPrintServer.InstallPrintQueue("My clone of " + sourcePrintQueue.Name, "Xerox WCP 35 PS", port, "WinPrint", myPrintProperties);
myLocalPrintServer.Commit();

// Report outcome
Console.WriteLine("{0} in {1} has been installed and shared as {2}", clonedPrinter.Name, clonedPrinter.Location, clonedPrinter.ShareName);
Console.WriteLine("Press Return to continue ...");
Console.ReadLine();

Siehe auch

Konzepte

Dokumente in Windows Presentation Foundation

Übersicht über das Drucken

Referenz

System.Printing.IndexedProperties

PrintPropertyDictionary

LocalPrintServer

PrintQueue

DictionaryEntry

Weitere Ressourcen

Beispiele für Drucken