【发布时间】:2010-12-07 15:39:43
【问题描述】:
那么,是否有可能在任何应用程序的任何地方与所有按下的所有键相交?或多或少像键盘记录器。我想知道这在 C++ 或 C# 中是否可行。
问候
【问题讨论】:
-
你想要 C# 还是 C++ 还是两者兼而有之?
那么,是否有可能在任何应用程序的任何地方与所有按下的所有键相交?或多或少像键盘记录器。我想知道这在 C++ 或 C# 中是否可行。
问候
【问题讨论】:
您正在寻找的是键盘挂钩。这可以使用一些 P/Invoke。在此处查看示例:
【讨论】:
如果您想使用 winapi thaen 函数,您正在寻找的是带有标志 WH_KEYBOARD 的 SetWindowsHookEx。如果您想获得真正的所有 kes,您可以使用 low-lewel 标志而不是 WH_KEYBOARD_LL,但这不会翻译击键,因此更难使用。
我从未使用过这个标志,但我知道有些标志需要注册的钩子函数才能在单独的模块(例如 dll)中,因为它们将在实际接收键盘输入的应用程序上下文中加载和执行。如果是这样,您还必须考虑一种将收集到的数据返回给您的应用程序的机制,因为全局变量将不起作用。
【讨论】: