Procedura: enumerare un sottoinsieme di code di stampa

Una situazione comune affrontata dai professionisti IT (Information Technology) che gestiscono un set di stampanti a livello aziendale consiste nel generare un elenco di stampanti con determinate caratteristiche. Questa funzionalità viene fornita dal GetPrintQueues metodo di un PrintServer oggetto e dall'enumerazione EnumeratedPrintQueueTypes .

Esempio

Nell'esempio seguente, il codice inizia creando una matrice di flag che specificano le caratteristiche delle code di stampa da elencare. In questo esempio vengono cercate code di stampa installate localmente nel server di stampa e condivise. L'enumerazione EnumeratedPrintQueueTypes offre molte altre possibilità.

Il codice crea quindi un LocalPrintServer oggetto, una classe derivata da PrintServer. Il server di stampa locale è il computer in cui è in esecuzione l'applicazione.

L'ultimo passaggio significativo consiste nel passare la matrice al GetPrintQueues metodo .

Infine, i risultati vengono presentati all'utente.

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

È possibile estendere questo esempio facendo in modo che il foreach ciclo passi attraverso ogni coda di stampa esemplivi ulteriori screening. Ad esempio, è possibile visualizzare le stampanti che non supportano la stampa a due lati facendo in modo che il ciclo chiami il metodo di ogni coda di GetPrintCapabilities stampa e testa il valore restituito per la presenza di duplex.

Vedi anche