无法在WinForms MDI中捕获Ctrl + Alt + F1.这很特别吗?

mir*_*lav 3 .net mdi keyboard-shortcuts winforms toolstripmenu

我的WinForms MDI应用程序在ToolStripMeniItem项目中设置了几个键盘快捷键.

以下是:

  • Ctrl+ Alt+F1
  • Ctrl+ Alt+F2
  • Ctrl+ Alt+F3

第一个是永远不会触发其菜单项.其他人按预期工作.

  • 它被封锁/使用了吗?是否有一些这样的被阻止的键盘快捷键列表?

  • 有没有办法如何使用它?(最好只是通过设计师而不添加特殊代码?)

Han*_*ant 7

如果我在我的机器上按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);
    }
Run Code Online (Sandbox Code Playgroud)

我会饶你"Yada"截图.否则是一个非常典型的危险,调用RegisterHotKey()的程序总是超越你的快捷键击并做他们应该做的任何事情.语言栏作为另一个跳跃到脑海.还有很多其他的.使用任务管理器杀死进程以查找恶意进程.

当然,你无能为力.您可以运行msconfig.exe来禁用它,但这对用户的计算机没有任何用处.这些程序总是选择明显的键,您可以通过从右到左选择快捷键来抵消.最好的办法是避免需要多个修饰符的键,用户也不喜欢它们.