所以我想制作一个程序,禁用所有的键盘输入,但仍然可以检测到一个键被按下(无所谓)。如何抑制键盘输入
我尝试使用BlockInput
方法,但它阻止了所有输入(鼠标和键盘),并且不允许进一步检测键盘按下。
这是我当前的代码(函数是用1个周期的时间间隔定时器)
private void detect_key_press_Tick(object sender, EventArgs e)
{
Process p = Process.GetCurrentProcess();
if (p != null)
{
IntPtr h = p.MainWindowHandle;
//SetForegroundWindow(h);
if (Keyboard.IsKeyDown(Key.A))
{
//SendKeys.SendWait("k");
this.BackColor = Color.Red;
}
else
{
this.BackColor = Control.DefaultBackColor;
}
}
}
我怎么能这样做吗?谢谢。
编辑
我试图
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
e.Handled = true;
e.SuppressKeyPress = true;
}
,但没有成功。钥匙仍然被处理。
计时器不起作用。你应该钩住键盘。 – Alex
我看了。你如何创建这样一个钩子。 – ZeroByter