【发布时间】:2015-11-15 14:25:18
【问题描述】:
我在 Delphi 中制作了一个应用程序,可以处理一些已定义的系统范围的热键,效果很好。但是,对于某些热键功能,我必须触发/模拟一些键盘敲击,例如 ALT+ENTER。这在用户直接释放热键时效果很好,但是当用户仍然按下键时,键盘模拟失败。
有没有办法(使用 Windows API)在我处理键盘模拟之前检查是否所有键都被释放?
【问题讨论】:
-
为什么不使用内置热键支持的动作管理器呢?或者您想在您的应用程序之外捕获这些事件?另一方面,我们需要了解您当前的代码是如何工作的,以便能够建议如何继续。
-
伪造输入是一件棘手的事情。通常最好避免。
-
感谢 cmets。这个问题与这个问题有关:stackoverflow.com/questions/32062929/…。如果您知道如何管理 DirectX 窗口,则不需要任何键。在这种情况下并不棘手,因为我可以检查窗口的状态。如果未应用 ALT+ENTER,则不会发生任何事情。已经更改了代码分配。是的,热键是在应用程序之外处理的,所以操作管理器没有用。但为什么所有这些担忧?请回答我的问题,我知道我在做什么以及为什么。
-
问题是:是否可以使用 Windows API 检查键盘按键的状态。我已经找到了 getKeyboardState 但不知道如何使用它。找不到有用的例子。
-
我对stackoverflow的一些人不太了解,为什么要downvote,这个问题有什么问题?请,当您投反对票时,请留下您投反对票的原因。在这种情况下,这是令人沮丧的,我无法做任何事情来改善这个问题,因为我不知道它有什么问题。无论如何,那里有赞成票,所以我认为有些人的发型很糟糕?我不知道。
标签: windows delphi keyboard hotkeys