Sdílet prostřednictvím


Jak na to: Vypsání podmnožiny tiskových front

Běžnou situací, se kterou čelí odborníci v oblasti informačních technologií (IT), kteří spravují sadu tiskáren v celé společnosti, je vygenerovat seznam tiskáren s určitými vlastnostmi. Tuto funkci poskytuje metoda GetPrintQueues objektu PrintServer a výčtu EnumeratedPrintQueueTypes.

Příklad

V následujícím příkladu kód začíná vytvořením pole příznaků, které definují charakteristiky tiskových front, které chceme seznam. V tomto příkladu hledáme tiskové fronty, které jsou nainstalovány místně na tiskovém serveru a jsou sdíleny. Výčet EnumeratedPrintQueueTypes nabízí mnoho dalších možností.

Kód pak vytvoří LocalPrintServer objekt, třídu odvozenou z PrintServer. Místní tiskový server je počítač, na kterém je aplikace spuštěná.

Posledním významným krokem je předání pole metodě GetPrintQueues.

Nakonec se uživateli zobrazí výsledky.

// 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()

Tento příklad můžete rozšířit tak, že smyčka foreach, která prochází jednotlivé tiskové fronty, provede další kontrolu. Můžete například vyloučit tiskárny, které nepodporují oboustranný tisk, tím, že smyčka zavolá metodu GetPrintCapabilities každé tiskové fronty a otestuje vrácenou hodnotu pro přítomnost podpory duplexního tisku.

Viz také