Tôi liệt kê các máy in được kết nối trong PC. Tôi đã thực hiện nó bằng cách sử dụng không gian tên C# System.Printing
. Nó hoạt động tốt. Nhưng chủ yếu là nó cho thấy máy in phần mềm như Microsoft XPS tài liệu nhà văn, Microsoft Fax vv Tôi muốn biết là nó có thể loại bỏ các máy in ssoftware từ đếm. Mã tôi đã thực hiện được hiển thị bên dưới:Xác định máy in gốc
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;
}
}
Điều rất hài hước là tôi đang sử dụng máy in mạng :) – Zigma
Tôi đã đưa ra rất nhiều suy nghĩ trong vài ngày qua và tôi nghĩ rằng tôi biết hệ thống con in của Windows cũng như bất cứ ai bên ngoài Microsoft, và ... tốt, tôi sợ tôi không nghĩ rằng có một cách để phân biệt đáng tin cậy giữa phần cứng và máy in ảo trong mọi trường hợp. Tôi có thể cung cấp cho bạn một giải pháp "thường đúng", nhưng tôi không nghĩ rằng một giải pháp "luôn luôn đúng" là có thể. Lấy làm tiếc. :-( –