到处获取所有按键

时间:2010-12-07 15:39:43

标签: c# c++ events key

那么是否有可能将所有按键交叉,所有应用程序都无处不在?更像是一个键盘记录器。我想知道在C ++或C#中是否可行。

此致

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

如果你想使用winapi thaen功能,你正在寻找带有标志WH_KEYBOARD的SetWindowsHookEx。如果你想真正获得所有kes,你可以使用低级别的标志来代替WH_KEYBOARD_LL,但这不会翻译击键,因此使用它会更加困难。

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