Freigeben über


Auflisten einer Teilmenge von Druckwarteschlangen

Eine häufige Herausforderung, mit der IT-Experten bei der Verwaltung einer unternehmensweiten Gruppe von Druckern konfrontiert sind, besteht darin, eine Liste von Druckern mit bestimmten Merkmalen zu erstellen. Diese Funktionalität wird über die GetPrintQueues-Methode eines PrintServer-Objekts und die EnumeratedPrintQueueTypes-Enumeration bereitgestellt.

Beispiel

Im folgenden Beispiel beginnt der Code mit dem Erstellen eines Arrays von Kennzeichnungen, die die Eigenschaften der Druckerwarteschlangen angeben, die wir auflisten möchten. In diesem Beispiel wird nach Druckwarteschlangen gesucht, die lokal auf dem Druckerserver installiert und freigegeben sind. Die EnumeratedPrintQueueTypes-Enumeration bietet noch viele weitere Möglichkeiten.

Der Code erstellt dann ein LocalPrintServer-Objekt, eine von PrintServerabgeleitete Klasse. Der lokale Druckserver ist der Computer, auf dem die Anwendung ausgeführt wird.

Der letzte wichtige Schritt besteht darin, das Array an die GetPrintQueues-Methode zu übergeben.

Schließlich werden den Benutzern die Ergebnisse angezeigt.

// Specify that the list will contain only the print queues that are installed as local and are shared
array<System::Printing::EnumeratedPrintQueueTypes>^ enumerationFlags = {EnumeratedPrintQueueTypes::Local,EnumeratedPrintQueueTypes::Shared};

LocalPrintServer^ printServer = gcnew LocalPrintServer();

//Use the enumerationFlags to filter out unwanted print queues
PrintQueueCollection^ printQueuesOnLocalServer = printServer->GetPrintQueues(enumerationFlags);

Console::WriteLine("These are your shared, local print queues:\n\n");

for each (PrintQueue^ printer in printQueuesOnLocalServer)
{
   Console::WriteLine("\tThe shared printer " + printer->Name + " is located at " + printer->Location + "\n");
}
Console::WriteLine("Press enter to continue.");
Console::ReadLine();
// Specify that the list will contain only the print queues that are installed as local and are shared
EnumeratedPrintQueueTypes[] enumerationFlags = {EnumeratedPrintQueueTypes.Local,
                                                EnumeratedPrintQueueTypes.Shared};

LocalPrintServer printServer = new LocalPrintServer();

//Use the enumerationFlags to filter out unwanted print queues
PrintQueueCollection printQueuesOnLocalServer = printServer.GetPrintQueues(enumerationFlags);

Console.WriteLine("These are your shared, local print queues:\n\n");

foreach (PrintQueue printer in printQueuesOnLocalServer)
{
    Console.WriteLine("\tThe shared printer " + printer.Name + " is located at " + printer.Location + "\n");
}
Console.WriteLine("Press enter to continue.");
Console.ReadLine();
' Specify that the list will contain only the print queues that are installed as local and are shared
Dim enumerationFlags() As EnumeratedPrintQueueTypes = {EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Shared}

Dim printServer As New LocalPrintServer()

'Use the enumerationFlags to filter out unwanted print queues
Dim printQueuesOnLocalServer As PrintQueueCollection = printServer.GetPrintQueues(enumerationFlags)

Console.WriteLine("These are your shared, local print queues:" & vbLf & vbLf)

For Each printer As PrintQueue In printQueuesOnLocalServer
    Console.WriteLine(vbTab & "The shared printer " & printer.Name & " is located at " & printer.Location & vbLf)
Next printer
Console.WriteLine("Press enter to continue.")
Console.ReadLine()

Sie können dieses Beispiel erweitern, indem Sie die foreach-Schleife verwenden, um jede Druckwarteschlange für weitere Analysen zu durchlaufen. Sie können beispielsweise Drucker heraussuchen, die den zweiseitigen Druck nicht unterstützen, indem Sie die GetPrintCapabilities-Methode der einzelnen Druckschleifen in der Schleife aufrufen und den zurückgegebenen Wert auf das Vorhandensein von Duplexing zu überprüfen.

Siehe auch