3ds Max 2016的版本怎么處理 按鍵輸入被主程序截斷 C#winform窗體接受不到英文輸入
如果窗體失去焦點應該取消 全局監聽事件
解決方案:在窗體失去焦點時取消全局鍵盤鉤子
為了確保 WinForms 窗體失去焦點時不再攔截鍵盤事件(避免影響 3ds Max 或其他程序),我們需要在 Deactivate
事件中 臨時卸載鉤子,并在窗體重新激活時恢復。
using System;
using System.Windows.Forms;public class KeyCaptureForm : Form
{private GlobalKeyboardHook _keyboardHook;private TextBox _textBox;public KeyCaptureForm(){this.Text = "全局鍵盤監聽";_textBox = new TextBox { Width = 300, Multiline = true, Height = 200 };this.Controls.Add(_textBox);// 初始化全局鍵盤鉤子_keyboardHook = new GlobalKeyboardHook();_keyboardHook.OnKeyDown += (keyCode) =>{_textBox.AppendText($"按下: {(Keys)keyCode}\n");};_keyboardHook.OnKeyUp += (keyCode) =>{_textBox.AppendText($"釋放: {(Keys)keyCode}\n");};this.FormClosed += (s, e) => _keyboardHook.Dispose();}
}