PCに接続されているプリンターを列挙しています。C#System.Printing
名前空間を使用して実行しました。それはうまくいきます。しかし、ほとんどの場合、Microsoft XPS ドキュメント ライター、Microsoft Faxなどのソフトウェア プリンターが表示されます。これらのソフトウェア プリンターを列挙から削除できるかどうかを知りたいです。私が行ったコードは以下のとおりです。
PrintQueue printQueue = null;
LocalPrintServer localPrintServer = new LocalPrintServer();
// Retrieving collection of local printer on user machine
PrintQueueCollection localPrinterCollection =
localPrintServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local,
EnumeratedPrintQueueTypes.Connections });
System.Collections.IEnumerator localPrinterEnumerator =
localPrinterCollection.GetEnumerator();
while (localPrinterEnumerator.MoveNext())
{
// Get PrintQueue from first available printer
printQueue = (PrintQueue)localPrinterEnumerator.Current;
if (!printQueue.IsOffline)
{
MessageBox.Show(printQueue.FullName.ToString());
string s = "Printer found " + printQueue.FullName.ToString();
listBox1.Items.Add(s);
}
else
{
// No printer exist, return null PrintTicket
// return null;
}
}