如何在c#中使用RawInput来使用Alt + Numpad?

时间:2013-09-03 08:10:42

标签: c# raw-input

我正在写一个类来消耗条形码扫描器的'ALL'输入。我使用的是http://nicholas.piasecki.name/blog/2009/02/distinguishing-barcode-scanners-from-the-keyboard-in-winforms/

中的代码

我在PreFilterMessage()中添加了以下行以供测试。

if (m.Msg != Win32.WM_INPUT)
{
    // Allow any non WM_INPUT message to pass through
    return false;
}
return true;

问题在于某些条形码中有“═”(Alt + Numpad:205)。它会在文本框中输入。如何防止Alt + Numpad键分派?

我可以通过设置表单

来捕获表单级别的键来解决这个问题
keypreview=true, 

并在form_keypress事件设置中

//if(Alt pressed && numpad keys)
e.Handled = true;

但理想情况下,这应由班级处理。任何想法??

1 个答案:

答案 0 :(得分:0)

检查修改键以阻止Alt + Numpad键怎么样? E.g。

if (ModifierKeys == Keys.Alt) return true;