Windows API 禁用过滤键对话框?

Posted

技术标签:

【中文标题】Windows API 禁用过滤键对话框?【英文标题】:Windows API to disable Filter Keys dialog? 【发布时间】:2021-11-08 08:30:58 【问题描述】:

我的 C++ 游戏允许用户按住 shift 键以提高速度,但 8 秒后这会导致在新的 Windows 10 机器上弹出一个恼人的对话框(“你想打开过滤键吗?”) .有没有办法在我的游戏运行时以编程方式禁用此功能?

【问题讨论】:

我想如果你使用 XInput / DirectInput 那么这种事情会被绕过。 根据当前的 DirectInput 文档:“不建议使用 DirectInput 进行键盘和鼠标输入。您应该改用 Windows 消息。” 【参考方案1】:

我建议你可以参考文档:Disabling Shortcut Keys in Games

为避免这些问题,您应该在以全屏模式运行时禁用这些键,并在以窗口模式运行时将这些键启用回其默认处理程序或退出应用程序。

要关闭这些快捷方式:

1,在禁用它们之前捕获当前的辅助功能设置。

2,如果无障碍功能关闭,应用程序进入全屏模式时禁用无障碍快捷方式。

3,当应用程序进入窗口模式或退出时恢复辅助功能设置。

您可以尝试使用SystemParametersInfo 来获取和设置系统信息。

【讨论】:

以上是关于Windows API 禁用过滤键对话框?的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用xp系统下的Ctrl+Alt+Del和Alt+Tab Alt+F4以及windows键

如何禁用 Qt Mainwindow 快捷方式适用于无模式对话框

windows10系统不能读取光盘怎么办

Primefaces:禁用数据缓冲区的ajaxStatus

如何从 JFileChooser(JAVA Swing) 中禁用文件操作、文件选择和过滤面板?

怎样用win32 API函数弹出对话框