ManagementObjectSearcher选择网络打印机?

net*_*jor 2 c# network-printers

我用 :

ManagementObjectSearcher searcher = new 
    ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Printer"); 
Run Code Online (Sandbox Code Playgroud)

获得打印机,但它找到本地打印机..可以通过IP选择网络打印机吗?

Mic*_*ker 5

将" 网络 " 传递给ManagementObjectCollection中每个项目的对象索引器.如果打印机是网络打印机,它将返回true.同样,您可以传递" 本地 "以确定打印机是否是本地的.

var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Printer");
var results = searcher.Get();

IList<ManagementBaseObject> printers = new List<ManagementBaseObject>();

foreach (var printer in results) {
    if ((bool)printer["Network"]) {
        printers.Add(printer);
    }
}
Run Code Online (Sandbox Code Playgroud)