Identifier le scanner (s) connecté à l'ordinateur?
-
22-08-2019 - |
Question
L'application je travaille est en utilisant un scanner, qui peut appartenir à l'un des quelques types. Je dois identifier le scanner connecté (s), donner une option pour sélectionner un scanner par défaut de ceux qui sont attachés et aussi changer cette sélection chaque fois que nécessaire. Jusqu'à présent, je suis venu avec cette solution:
ManagementObjectSearcher search = new System.Management.ManagementObjectSearcher("SELECT * From Win32_PnPEntity");
ManagementObjectCollection deviceCollection = search.Get();
foreach (ManagementObject info in deviceCollection)
{
string deviceName = Convert.ToString(info["Caption"]);
if( /* check something about deviceName */)
{
// add a scanner to the list
}
}
Cela fonctionne pour moi parce que je sais à quoi vous attendre dans l'info [ « Légende »]. Cependant, il y a quelques questions:
- Je sais que mes appareils vont être sous « dispositifs d'imagerie ». Y at-il un moyen d'identifier uniquement les membres de la branche « dispositifs d'imagerie », sans boucle à travers tous les périphériques PnP? Je viens de trouver que sur mon PC le deviceCollection a 190 entrées. Ce serait vraiment agréable de filtrer vers le bas juste un couple. :)
- Est-il possible d'identifier que le dispositif est un scanner, pour le scénario où je ne sais pas à l'avance sur le modèle / type d'un scanner qui sera jointe?
La solution
Vous pouvez essayer l'acquisition d'images Windows Automatisation Library comme suggéré dans ce fil
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow