【发布时间】:2013-03-31 16:42:10
【问题描述】:
我编写了一个应用程序,它有一个覆盖式窗口,可以通过热键显示和隐藏,而另一个应用程序具有焦点。所述其他应用程序是以管理员权限运行的 DirectX 游戏。
我已经尝试了 3 种可能的解决方案,以便在我的热键在另一个应用程序中按下时得到通知,其中 2 种可行,但要求我的应用程序也具有管理权限。这是可以接受的,但我更希望有一个不需要这些特权的解决方案。我确信一定有办法,因为像 TeamSpeak 这样的应用程序确实可以在不以管理员身份运行的情况下接收输入。
我已经尝试过的:
- RegisterHotkey - 不适合,因为它在 DirectX 窗口中不起作用。
- SetWindowsHookEx - 用作通用键盘挂钩,但仅具有管理员权限。
- GetAsyncKeyState - 用于检查指定的热键,但不是没有管理员权限。
所以是的,如果有人能提供一个不同的解决方案的想法,我将非常感激,因为我想不出更多了......我正在使用 Delphi,但由于我依赖于 Windows API,我不要认为解决方案是特定于语言的。
【问题讨论】:
标签: delphi winapi keyboard-hook uipi