2013-04-10 1 views
2

Je suis en train de concevoir une application qui doit identifier si l'imprimante est connectée ou non. Je connais les méthodes de WMI pour énumérer les imprimantes connectées. Mais que faire si l'imprimante est connectée après le démarrage de l'application? Avons-nous des événements ou des API pour cela? Ou je dois vérifier fréquemment en utilisant le code WMI?événement connecté à l'imprimante

, pour simplifier, essayé LocalPrintServer classe comme ceci:

PrintQueue printQueue = null; 

      LocalPrintServer localPrintServer = new LocalPrintServer(); 

      // Retrieving collection of local printer on user machine 
      PrintQueueCollection localPrinterCollection = 
       localPrintServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }); 

      System.Collections.IEnumerator localPrinterEnumerator = 
       localPrinterCollection.GetEnumerator(); 

      while(localPrinterEnumerator.MoveNext()) 
      { 
       // Get PrintQueue from first available printer 
       printQueue = (PrintQueue)localPrinterEnumerator.Current;      

       if (!printQueue.IsOffline) 
       { 

        string s = "Printer found " + printQueue.FullName.ToString(); 
        listBox1.Items.Add(s); 
        bDeviceFound = true; 
        button1.Enabled = bDeviceFound; 


       } 

vous connaît, il affichera les imprimantes installées il fonctionne sur le démarrage de l'application. Le problème est qu'il ne peut pas identifier si une imprimante connectée après le démarrage de l'application.Si nous avons des événements pour cela, je pourrais appeler cette méthode pour ré-énumérer l'imprimante sauf si je suis supposé pour un thread ou en boucle?

Merci

+0

Avez-vous essayé _anything_? Montrez votre travail .. –

+0

S'il vous plaît voir mon travail – Zigma

+0

Je ne peux pas vous aider directement mais essayez Google pour les entrées de blog/code par Duncan Edwards Jones. Il semble être le bon gourou .net-printing. – svenv

Répondre

1

résolu le problème en définissant une minuterie pour tirer les détails.

Questions connexes