2010-07-16 4 views

Répondre

5

Transmettez "Réseau" à l'indexeur d'objet de chaque élément de votre ManagementObjectCollection. Si l'imprimante est une imprimante réseau, elle retournera true. De même, vous pouvez passer "Local" pour déterminer si l'imprimante est locale.

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); 
    } 
} 
+0

est-il possible de trouver la liste de travail de cette imprimante? – netmajor

+1

La requête est, SELECT * FROM Win32_PrintJob et passez "Nom" à l'indexeur. –

+0

alors Win32_PrintJob me donne des jobs de l'ordinateur que j'utilise? Mais comment obtenir des emplois d'une imprimante spécifique? Quelque chose comme utiliser Win3Printer pour obtenir des imprimantes réseau et ensuite en utilisant Win32_PrintJob pour obtenir tous les travaux de l'imprimante spécifique ... Il est possible? – netmajor

Questions connexes