我正在尋找一種方法來獲取特定打印機的作業列表或數量。在最好的情況下,我希望有一個「Job對象」代表一個打印作業及其在打印隊列中的名稱。如何從打印機隊列中檢索列表或作業數量?
這是必需的,因爲我需要監視打印機的狀態,所以我可以補充打印隊列中有一批新的文件也不會溢出打印後臺處理程序
提前感謝!
編輯:解
private int GetNumberOfPrintJobs()
{
LocalPrintServer server = new LocalPrintServer();
PrintQueueCollection queueCollection = server.GetPrintQueues();
PrintQueue printQueue = null;
foreach (PrintQueue pq in queueCollection)
{
if (pq.FullName == PrinterName)
printQueue = pq;
}
int numberOfJobs = 0;
if (printQueue != null)
numberOfJobs = printQueue.NumberOfJobs;
return numberOfJobs;
}
我已經看過這個了。但它需要一個PrintServer對象來實例化。我正在使用本地安裝的打印機。這會造成問題嗎?但這肯定是一個理想的解決方案。我已經有一段時間()的輪詢,因爲我在一個線程中打印,我需要一個阻塞構造。此打印機也是_very_慢;) – 2011-04-08 13:30:52
使用LocalPrintServer類。 – 2011-04-08 13:42:47
難道這是顯而易見的?感謝您向我展示Google無法提供的內容:) – 2011-04-08 13:47:43