Procedura: enumerare un sottoinsieme di code di stampa
Una situazione che spesso i professionisti del settore IT (Information Technology) che gestiscono una serie di stampanti a livello aziendale devono affrontare riguarda la creazione di un elenco di stampanti con determinate caratteristiche. Tale funzionalità viene fornita dal metodo GetPrintQueues di un oggetto PrintServer e dall'enumerazione EnumeratedPrintQueueTypes.
Esempio
Nell'esempio riportato di seguito, nella parte iniziale del codice viene creata una matrice di flag che specificano le caratteristiche delle code di stampa che si desidera elencare. In questo esempio, si ricercano le code di stampa installate localmente sul server di stampa e condivise. L'enumerazione EnumeratedPrintQueueTypes offre molte altre possibilità.
Il codice crea quindi un oggetto LocalPrintServer, una classe derivata da PrintServer. Il server di stampa locale è il computer in cui l'applicazione è in esecuzione.
L'ultimo passaggio significativo consiste nel passare la matrice al metodo GetPrintQueues.
I risultati vengono infine presentati all'utente.
' 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()
// 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
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();
È possibile estendere questo esempio mediante un ulteriore screening eseguito nel ciclo foreach che scorre tutte le code di stampa. Ad esempio, è possibile escludere le stampanti che non supportano la stampa fronte retro chiamando il metodo GetPrintCapabilities di ogni coda di stampa all'interno del ciclo e verificando la presenza di stampe fronte retro nel valore restituito.
Vedere anche
Riferimenti
Concetti
Cenni preliminari sulla stampa