【发布时间】:2015-07-29 05:59:29
【问题描述】:
所以我正在尝试制作一个程序来禁用所有键盘输入,但仍然可以检测到何时按下某个键(不管是哪个键)。
我尝试使用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;
}
但没有成功。密钥仍在处理中。
【问题讨论】:
-
计时器不起作用。你应该挂上键盘。
-
我看过了。你如何创建这样的钩子。