我编写了一个应用程序,该应用程序具有一个覆盖类型的窗口,可以通过热键显示和隐藏,而另一个应用程序具有焦点。所述其他应用程序是以管理员权限运行的 DirectX 游戏。
我已经尝试了 3 种可能的解决方案来在另一个应用程序中按下我的热键时获得通知,其中 2 种可以工作,但也要求我的应用程序具有管理权限。这是可以接受的,但我更希望有一个不需要这些特权的解决方案。我确信必须有一种方法,因为像 TeamSpeak 这样的应用程序确实可以在不以管理员身份运行的情况下接收输入。
我已经尝试过的:
- RegisterHotkey - 不适合,因为它在 DirectX 窗口中不起作用。
- SetWindowsHookEx - 用作通用键盘挂钩,但仅具有管理员权限。
- GetAsyncKeyState - 用于检查指定的热键,但不是没有管理员权限。
所以是的,如果有人能提供一个不同的解决方案的想法,我将非常感激,因为我想不出更多了......我正在使用 Delphi,但因为我依赖于 Windows API,所以我不认为解决方案将是特定于语言的。