如何使用c#中的RawInput使用Alt+Numpad

本文关键字:使用 Alt+Numpad RawInput 中的 何使用 | 更新日期: 2023-09-27 18:30:08

我正在编写一个类来使用来自条形码扫描仪的"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;

但理想情况下,这应该由类来处理。有什么想法吗??

如何使用c#中的RawInput使用Alt+Numpad

检查修改键以阻止Alt+Numpad键如何?例如

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