2017-01-03 4 views
-4

Я использую простой Hookup для записи ключей из BarcodeScanner, который является подключением через Usb в качестве клавиатуры. Я использую этот пример, который я нашел в Интернете:Как предотвратить клавиатуру от записи в другие приложения

using System.Windows.Forms; 

namespace RawInput 
{ 
public partial class Form1 : Form 
{ 
    InputDevice id; 
    int NumberOfKeyboards; 

    public Form1() 
    { 
     InitializeComponent(); 

     // Create a new InputDevice object, get the number of 
     // keyboards, and register the method which will handle the 
     // InputDevice KeyPressed event 
     id = new InputDevice(Handle); 
     NumberOfKeyboards = id.EnumerateDevices(); 
     id.KeyPressed += new InputDevice.DeviceEventHandler(m_KeyPressed); 
    } 

    // The WndProc is overridden to allow InputDevice to intercept 
    // messages to the window and thus catch WM_INPUT messages 
    protected override void WndProc(ref Message message) 
    { 
     if(id != null) 
     { 
      id.ProcessMessage(message); 
     } 
     base.WndProc(ref message); 
    } 

    private void m_KeyPressed(object sender, InputDevice.KeyControlEventArgs e) 
    { 
     //Replace() is just a cosmetic fix to stop ampersands turning into underlines 
     lbHandle.Text = e.Keyboard.deviceHandle.ToString(); 
     lbType.Text = e.Keyboard.deviceType; 
     lbName.Text = e.Keyboard.deviceName.Replace("&", "&&"); 
     lbDescription.Text = e.Keyboard.Name;   
     lbKey.Text = e.Keyboard.key.ToString(); 
     lbNumKeyboards.Text = NumberOfKeyboards.ToString(); 
     lbVKey.Text = e.Keyboard.vKey; 
    } 

    private void btnClose_Click(object sender, System.EventArgs e) 
    { 
     this.Close(); 
    } 

} 
} 

Проблема заключается в том, что сканер штрих-кода в зависимости от того, пишет приложение находится в фокусе. Можно ли перенаправить все данные с этого устройства на мое приложение во время его работы?

+3

'Я не хочу, чтобы Google после него? Что? –

+0

Изменил его, чтобы попытаться спасти его –

ответ

0

Если ваше устройство установлено как клавиатура (а не устройство HMI, отличное от клавиатуры), это не так просто, поскольку клавиатура и мышь ограничены ОС.

This answer указывает, как вы можете обойти это ограничение.

Удачи вам!