Comment : énumérer un sous-ensemble de files d'attente à l'impression
Une situation courante rencontrée par les professionnels de la technologie de l’information (IT) qui gèrent un ensemble d’imprimantes à l’échelle de l’entreprise consiste à générer une liste d’imprimantes présentant certaines caractéristiques. Cette fonctionnalité est fournie par la GetPrintQueues méthode d’un PrintServer objet et l’énumération EnumeratedPrintQueueTypes .
Exemple
Dans l’exemple ci-dessous, le code commence par créer un tableau d’indicateurs qui spécifient les caractéristiques des files d’attente d’impression que nous voulons répertorier. Dans cet exemple, nous recherchons des files d’attente d’impression installées localement sur le serveur d’impression et qui sont partagées. L’énumération EnumeratedPrintQueueTypes offre de nombreuses autres possibilités.
Le code crée ensuite un LocalPrintServer objet, une classe dérivée de PrintServer. Le serveur d’impression local est l’ordinateur sur lequel l’application s’exécute.
La dernière étape significative consiste à passer le tableau à la GetPrintQueues méthode.
Enfin, les résultats sont présentés à l’utilisateur.
// 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()
Vous pouvez étendre cet exemple en ayant la foreach
boucle qui effectue les étapes de chaque file d’attente d’impression effectuer un filtrage plus approfondi. Par exemple, vous pouvez extraire les imprimantes qui ne prennent pas en charge l’impression à deux côtés en appelant la méthode de GetPrintCapabilities chaque file d’attente d’impression et en testant la valeur retournée pour la présence de duplexage.
Voir aussi
.NET Desktop feedback