无法在 WinForms MDI 中捕获 Ctrl+Alt+F1。很特别吗?
Cannot catch Ctrl+Alt+F1 in WinForms MDI. Is it special?
我的 WinForms MDI 应用程序有几个键盘快捷键设置在 ToolStripMeniItem 项。
其中:
- Ctrl+Alt+F1
- Ctrl+Alt+F2
- Ctrl+Alt+F3
第一个永远不会触发其菜单项。其他人按预期工作。
它在某处吗blocked/used?是否有此类被阻止的键盘快捷键的列表?
请问有什么使用方法吗? (最好只通过设计器而不添加特殊代码?)
如果我在我的机器上按 Ctrl+Alt+F1,它会激活 "Intel HD Graphics Control Panel"。许多机器都预装了一种传播广泛的无用恶意软件,英特尔对他们的软件非常不负责任。当我使用任务管理器(HK = 热键)终止 igfxHK.exe 进程时,MDI 应用程序中的这段代码可以正常工作:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
Console.WriteLine((int)keyData);
if (keyData == (Keys.F1 | Keys.Control | Keys.Alt)) {
MessageBox.Show("Yada");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
我会把 "Yada" 截图留给你。否则,一个非常典型的危险是,调用 RegisterHotKey() 的程序总是先于您的快捷键击键并执行它们应该执行的任何操作。语言栏作为另一个跳入脑海。还有很多其他的。使用任务管理器杀死进程以找出作恶者。
当然,您无能为力。您可以 运行 msconfig.exe 禁用它,但这对您用户的机器没有任何用处。这些程序总是选择明显的键,您可以通过从右到左选择快捷键来抵消。最好的办法是避免需要多个修饰符的键,用户也不喜欢它们。
我的 WinForms MDI 应用程序有几个键盘快捷键设置在 ToolStripMeniItem 项。
其中:
- Ctrl+Alt+F1
- Ctrl+Alt+F2
- Ctrl+Alt+F3
第一个永远不会触发其菜单项。其他人按预期工作。
它在某处吗blocked/used?是否有此类被阻止的键盘快捷键的列表?
请问有什么使用方法吗? (最好只通过设计器而不添加特殊代码?)
如果我在我的机器上按 Ctrl+Alt+F1,它会激活 "Intel HD Graphics Control Panel"。许多机器都预装了一种传播广泛的无用恶意软件,英特尔对他们的软件非常不负责任。当我使用任务管理器(HK = 热键)终止 igfxHK.exe 进程时,MDI 应用程序中的这段代码可以正常工作:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
Console.WriteLine((int)keyData);
if (keyData == (Keys.F1 | Keys.Control | Keys.Alt)) {
MessageBox.Show("Yada");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
我会把 "Yada" 截图留给你。否则,一个非常典型的危险是,调用 RegisterHotKey() 的程序总是先于您的快捷键击键并执行它们应该执行的任何操作。语言栏作为另一个跳入脑海。还有很多其他的。使用任务管理器杀死进程以找出作恶者。
当然,您无能为力。您可以 运行 msconfig.exe 禁用它,但这对您用户的机器没有任何用处。这些程序总是选择明显的键,您可以通过从右到左选择快捷键来抵消。最好的办法是避免需要多个修饰符的键,用户也不喜欢它们。