2016-09-14 1 views
0

J'essaie de détecter quand l'utilisateur scanne une carte sur un lecteur de carte USB, ce qui est fondamentalement un clavier très rapide. Maintenant, quand l'application wpf démarre, elle est au premier plan et met l'accent sur certaines zones de texte. Donc, la partie facile est complète.application WPF ouverte sur le balayage du scanner USB

Maintenant sur quoi devrais-je me concentrer en premier lorsque je fais face à ce genre de problème?

Est-il possible de créer une sorte de port d'écoute de port usb, qui peut ouvrir mon application wpf et écrire la chaîne analysée, si elle était activée à partir du port USB1?

Tout ce que je peux faire pour vous aider, ce sont les informations issues de la gestion informatique. Ce scanner USB est affiché comme un clavier et a cette information:

Device HID\VID_13BA&PID_0018\6&265a4e67&1&0000 was configured. 
Driver Name: keyboard.inf 
Class Guid: {4D36E96B-E325-11CE-BFC1-08002BE10318} 
Driver Date: 06/21/2006 
Driver Version: 10.0.10586.0 
Driver Provider: Microsoft 
Driver Section: HID_Keyboard_Inst.NT 
Driver Rank: 0xFF1003 
Matching Device Id: HID_DEVICE_SYSTEM_KEYBOARD 
Outranked Drivers: input.inf:HID_DEVICE:00FF1005 
Device Updated: false 
Parent Device: USB\VID_13BA&PID_0018\5&23ca3ecc&0&1 

Cordialement!

+0

Si vous utilisez le scanner dans son mode « coin du clavier » (il émule un clavier), vous allez avoir beaucoup de temps à gérer où l'accent est mis (c'est-à-dire lorsque vous tapez où vont les frappes). Si c'est au mauvais endroit, balayer quelque chose peut finir par faire beaucoup de choses "aléatoires", comme frapper au hasard sur votre clavier. Il est généralement préférable de reprogrammer le scanner pour qu'il apparaisse sous la forme d'un port série ou d'un autre périphérique, et en particulier de lire à partir de celui-ci. Ensuite, vous savez quelles données proviennent du scanner, c'est certain. – Steve

+0

Merci, j'ai trouvé un intercepteur lib en C++ et je l'utilise, mais juste comme vous l'avez dit je vais devoir savoir où se trouve le curseur, donc au lieu de cela j'essaye d'amener mon application wpf en face de la écran. J'ai donc créé un nouveau fil. http://stackoverflow.com/questions/39526144/bring-wpf-window-to-the-front-with-c-application –

Répondre

1

Peut-être que ce qui se passe est: votre zone de texte dans votre application a seulement le focus visuel, pas le focus du clavier. Ainsi, lorsque vous numérisez, le texte du scanner ne va pas dans la zone de texte.

En supposant que vous avez un contrôle TextBox1, dans l'événement Loaded dans votre application, vous devez envoyer le focus à TextBox1 cette façon:

TextBox1.Focus(); 
Keyboard.Focus(TextBox1); 
+0

Merci, j'ai posté un nouveau fil, peut-être vous pouvez ici comprendre mon problème http://stackoverflow.com/questions/39506118/opening-wpf-window-with-shellexecutea-and-make-it-active-so-that-you-can-direct –