2010-05-06 7 views
5

Je suis en mesure d'obtenir la liste des imprimantes réseau via ce code:C# Impression réseau

private void Form1_Load(object sender, EventArgs e) 
{ 
    foreach (String printer in PrinterSettings.InstalledPrinters) 
    { 
    listBox1.Items.Add(printer.ToString()); 
    } 
} 

Pour chaque imprimante réseau, je veux extraire plus d'informations comme: (a) obtenir des informations de documents, comme nombre de pages imprimées, nom de fichier, taille de fichier, etc.

(b) obtenir l'adresse IP de l'ordinateur à partir duquel le document a été imprimé.

(c) obtenir le nom d'utilisateur de qui a imprimé le document.

Comment puis-je réaliser ce qui précède? tout échantillon de code serait apprécié. Dois-je me pencher sur les produits WMI (Windows Management Instrumentation)?

Répondre

0

oui, je suis en mesure d'obtenir toutes les propriétés et les valeurs de WMI, de Win32_Printer en utilisant le code ci-dessous, mais je n'y arrivais (a) obtenir des informations sur le document, comme le nombre de pages imprimées, le nom du fichier, la taille du fichier, etc. (b) obtenir l'adresse IP de l'ordinateur à partir duquel le document a été imprimé. (c) obtenir le nom d'utilisateur de qui a imprimé le document.

code:

private void (object sender, EventArgs e) {button1_Click chaîne printerName = "Ricoh-L4-1"; chaîne query = chaîne.Format ("SELECT * from Win32_Printer WHERE Nom LIKE '% {0}'", nom_imprimante); ManagementObjectSearcher searcher = nouveau ManagementObjectSearcher (requête); ManagementObjectCollection coll = chercheur.Get();

 foreach (ManagementObject printer in coll) 
     { 
      foreach (PropertyData property in printer.Properties) 
      { 
       listBox1.Items.Add(string.Format("{0}: {1}", property.Name, property.Value)); 
      } 
     } 

    }