【问题标题】:Getting all the pressed keys everywhere让所有按下的键无处不在
【发布时间】:2010-12-07 15:39:43
【问题描述】:

那么,是否有可能在任何应用程序的任何地方与所有按下的所有键相交?或多或少像键盘记录器。我想知道这在 C++ 或 C# 中是否可行。

问候

【问题讨论】:

  • 你想要 C# 还是 C++ 还是两者兼而有之?

标签: c# c++ events key


【解决方案1】:

您正在寻找的是键盘挂钩。这可以使用一些 P/Invoke。在此处查看示例:

http://www.codeproject.com/KB/cs/CSLLKeyboardHook.aspx

【讨论】:

    【解决方案2】:

    如果您想使用 winapi thaen 函数,您正在寻找的是带有标志 WH_KEYBOARD 的 SetWindowsHookEx。如果您想获得真正的所有 kes,您可以使用 low-lewel 标志而不是 WH_KEYBOARD_LL,但这不会翻译击键,因此更难使用。

    我从未使用过这个标志,但我知道有些标志需要注册的钩子函数才能在单独的模块(例如 dll)中,因为它们将在实际接收键盘输入的应用程序上下文中加载和执行。如果是这样,您还必须考虑一种将收集到的数据返回给您的应用程序的机制,因为全局变量将不起作用。

    【讨论】:

    • 感谢我将尝试使用 winapi 并与 p/invoke 合并。与 BFree 建议的帖子基本相同
    猜你喜欢
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2023-01-10
    • 2015-09-25
    • 2012-02-15
    相关资源
    最近更新 更多