Megosztás a következőn keresztül:


Hogyan: A nyomtatósorok egy részhalmazának felsorolása

A vállalati szintű nyomtatókat kezelő informatikai (informatikai) szakemberek gyakran szembesülnek azzal, hogy létrehoznak egy listát a bizonyos jellemzőkkel rendelkező nyomtatókról. Ezt a funkciót egy GetPrintQueues objektum PrintServer metódusa és a EnumeratedPrintQueueTypes enumerálás biztosítja.

példa

Az alábbi példában a kód egy jelzőkből álló tömb létrehozásával kezdődik, amely meghatározza a listázni kívánt nyomtatási üzenetsorok jellemzőit. Ebben a példában olyan nyomtatási üzenetsorokat keresünk, amelyek helyileg vannak telepítve a nyomtatókiszolgálón, és meg vannak osztva. A EnumeratedPrintQueueTypes enumerálás számos más lehetőséget is kínál.

A kód ezután létrehoz egy LocalPrintServer objektumot, amely egy PrintServerosztályból származik. A helyi nyomtatókiszolgáló az a számítógép, amelyen az alkalmazás fut.

Az utolsó jelentős lépés a tömb átadása a GetPrintQueues metódusnak.

Végül az eredmények megjelennek a felhasználó számára.

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

Ezt a példát úgy terjesztheti ki, hogy az egyes nyomtatási várólistákon végiglépkedő foreach hurok további szűrést végez. Kiszűrheti például a kétoldalas nyomtatást nem támogató nyomtatókat, ha a hurok meghívja az egyes nyomtatási várólista GetPrintCapabilities metódusát, és teszteli a visszaadott értéket a kétoldalas nyomtatás jelenlétére.

Lásd még