Pergunta

Eu uso :

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

para obter impressoras, mas encontrar impressoras locais..É possível selecionar impressoras de rede por ip, talvez ?

Foi útil?

Solução

Passar "Rede"para o objeto indexador de cada item na sua ManagementObjectCollection.Se a impressora for uma impressora de rede, ele irá retornar true.Da mesma forma, você pode passar "Local"para determinar se a impressora é local.

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);
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top