如果窗口未激活则获取输入(Windows)

时间:2010-06-23 18:41:16

标签: c++ c windows input

简短版:

当窗口未激活时,如何在Windows中使用C ++ / C接收输入消息?

背景资料:

我目前正在研究一种不应依赖于任何窗口的输入系统,因此它可以例如也可以在控制台中使用。

我的想法是创建一个只接收消息的不可见窗口,这可以使用HWND_MESSAGE作为hWndParent。它只在它处于活动状态时才接收输入消息,我不希望这样。它应该始终接收输入(除非应用程序请求它不再这样做,例如因为它失去了焦点)。

我知道这有可能以某种方式,许多应用程序支持全局快捷方式(例如媒体播放器(播放控制)或即时消息(打开联系人列表)),我只是不知道如何。你知道吗?

2 个答案:

答案 0 :(得分:2)

选项:

  • RegisterHotKey如果您只需要注册一个或几个热键
  • SetWindowsHookEx与WH_KEYBOARD / WH_KEYBOARD_LL。需要过滤许多或所有键盘事件时使用。但是,钩子代码需要在DLL中实现(它被加载到其他进程中)。您需要单独的32位和64位版本的DLL

答案 1 :(得分:1)

您需要设置Windows键盘输入挂钩。 Here是一个如何做到的例子;在C ++中更容易做到