我們有一臺打印服務器和大量的打印機。我們像這樣訪問它們:獲取打印服務器上的打印機名稱
\\print-server-name\printer1
\\print-server-name\printer1_color
\\print-server-name\printer2
...等等。
我現在需要該服務器上所有打印機的列表。到目前爲止,我只能找到機器上本地安裝的所有打印機。我發現這給了我只有本地打印機藏漢此而谷歌搜索:
PrintServer lps = new PrintServer();
PrintQueueCollection prQueue = lps.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Connections });
liServerPrinterNames = (from printer in prQueue select printer).ToList();
其實我只需要在一個字符串數組服務器上所有打印機的名字,我甚至都不需要互動的對象,只有所有打印機的名稱都是字符串。那可能嗎?怎麼樣?
感謝您提前提供任何幫助!
看看構造函數; '新的PrintServer(@「\\ print-server-name」);' – 2015-02-05 14:24:59
你好Alex。感謝您的回覆。不幸的是,這個解決方案只返回本地打印機。 – Kai 2015-02-05 14:57:28
我在這裏找到了另一個帶有示例的網站:[link](http://www.encodedna.com/2013/04/show-printers-using-wmi.htm) 但是即使是包含此循環的示例: 'if(Convert.ToBoolean(Printers [「Network」]))//所有網絡打印機。 { cmbNetworkPrinters.Items.Add(Printers [「Name」]); }' ......只給了我本地打印機。這可能是某種政策限制嗎? – Kai 2015-02-12 14:32:38