2016-09-14 2 views
0

Я пытаюсь обнаружить, когда пользователь сканирует карту на устройстве чтения карт USB, что в основном является быстрым быстрым брелоком. Теперь, когда приложение wpf запускается, оно находится на переднем плане и фокусируется на определенном текстовом поле. Таким образом, легкая часть завершена.открыть приложение WPF для сканирования сканера usb

Теперь о каких вещах я должен сфокусировать сначала, когда я имею дело с такой проблемой?

Возможно ли создать какой-либо прослушиватель портов USB, который может открыть мое приложение wpf и записать отсканированную строку, если она была активирована с USB-порта1?

Все, что я могу вам помочь, это информация от управления компьютером. Этот USB-сканер отображается как клавиатура и имеет этот информационный бюллетень:

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 

С уважением!

+0

Если вы используете сканер в это режим «разрыв клавиатуры» (он эмулирует клавиатуру), у вас будет много времени на управление фокусом (т. е. когда вы вводите туда, где они нажимают клавиши). Если это не в том месте, сканирование чего-то может привести к большому количеству «случайных» вещей, например, случайным образом стучать на клавиатуре. Обычно лучше перепрограммировать сканер, чтобы он отображался как последовательный порт или какое-либо другое устройство, и, в частности, читать его. Тогда вы знаете, какие данные пришли из сканера, точно. – Steve

+0

Спасибо, я нашел перехватчик lib в C++, и я его использую, но, как и я сказал, мне нужно знать, где находится курсор, поэтому вместо этого я пытаюсь привести приложение wpf в начало экран. Поэтому я создал новый поток. http://stackoverflow.com/questions/39526144/bring-wpf-window-to-the-front-with-c-application –

ответ

1

Возможно, что-то происходит: текстовое поле в вашем приложении имеет только визуальный фокус, а не фокус клавиатуры. Таким образом, при сканировании текст из сканера не поступает в текстовое поле.

Предполагая, что у вас есть контроль над TextBox1, в нагруженном событии в вашем приложении вы должны послать фокус TextBox1 таким образом:

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

Спасибо, я опубликовал новую тему, может быть, вы можете здесь понять мою проблему http://stackoverflow.com/questions/39506118/opening-wpf-window-with-shellexecutea-and-make-it-active-so-that-you-can-direct –

Смежные вопросы