所以我想製作一個程序,禁用所有的鍵盤輸入,但仍然可以檢測到一個鍵被按下(無所謂)。如何抑制鍵盤輸入
我嘗試使用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