我正在尝试编写一个表情符号键盘程序,该程序可以监听第二个键盘。现在,我想禁止第二个键盘的Input并执行SendKeys方法。我正在使用RawInput API
我该如何抑制Keyevent。我已经知道我不能用RawInput做CallNextHookEx()。我已经尝试过在后台使用低级的键盘挂钩来抑制它,但是要么阻止每个输入并且不执行该方法,要么让50%的事件通过但方法被调用。
这里是我的代码:
RawInputEventArg rawinputevent;
private void lowlevelInput(object sender, KeyEventArgs e) //lowLevel hook method
{
Keys temp = e.KeyCode; //gets Key from the low level hook
if (rawinputevent.KeyPressEvent.DeviceName.Contains(NameOfSecondKeyboard))//checks if its from second keyboard
{
SendKeys.SendWait("it works");
e.SuppressKeyPress = true;
}
}
private void GlobalKeyPressed(object sender, RawInputEventArg e)//rawinput event handler
{
rawinputevent = e; //RawInputEvent gets passed to the lowlevel hook
}
当发生某种键盘事件时,将调用lowlevelInput方法。然后,它获取RawInputEvent并检查它是否是第二个键盘。如果是的话,它应调用SendKeys方法并禁止该密钥。但是它只会替代密钥,不会发送任何密钥。
我将不胜感激,我感到绝望。
谢谢