【问题标题】:Capturing keyboard input without focus on the programwindow在不关注程序窗口的情况下捕获键盘输入
【发布时间】:2011-01-03 18:15:03
【问题描述】:

我正在做一个 VoIP 客户端,我想为某个输入启动/停止 WM_KEYDOWN 和 WM_KEYUP 消息,比如 K。当主窗口有焦点时,这是 np,但我如何在窗口外启用它?例如,如果窗口不在焦点上,而我只是在看桌面或正在玩电子游戏。一个人如何执行这样的事情?我不知道从哪里开始。

还有——我猜你必须以某种方式轮询每个输入,甚至在程序之外,这很贵吗?

win32 c++ 顺便说一句

【问题讨论】:

    标签: c++ winapi input keyboard


    【解决方案1】:

    需要安装键盘挂钩:http://msdn.microsoft.com/en-us/library/ms644990(v=VS.85).aspx

    如果有东西窃取了它的键盘消息,这对于每个正在运行的应用程序来说都是非常麻烦的。

    【讨论】:

    • 你认为 skype/ventrilo 之类的应用程序就是这样管理这个的吗?
    【解决方案2】:

    我不认为你想要这个 - 如果我在 Word 中输入一个文档并按下 K,当你的应用程序弹出而不是我的文档中出现“k”时,我会非常生气。

    Windows 允许您将快捷键分配给桌面上的图标,但它仅限于功能键或包含 Alt 和 Ctrl 的组合。右键单击桌面图标并转到“属性”,然后查找标记为“快捷键”的字段。

    【讨论】:

    • 这个想法是在按下 K 时启用录音,例如,像 ventrilo/teamspeak/skype 一样。你认为他们会做这样的钩子吗?
    • 是的,他们有。 (那个或原始输入函数,但原始输入函数禁用低级挂钩,我认为他们会使用其他低级挂钩。可能是错误的。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 2013-01-03
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多