【发布时间】:2012-03-18 11:00:48
【问题描述】:
我希望制作一个混合所有键盘字母/ASCII 值的程序。有点像取下键盘字母并移动它们的软件版本......有没有办法做到这一点?现在,我使用内部带有 GetAsyncKeyState() 的无限 while 循环来获取任何键入的字母,但我不知道如何获取该信息并将其更改并放回系统......非常感谢任何和所有帮助。
谢谢!
【问题讨论】:
标签: c++ keyboard ascii keylogger
我希望制作一个混合所有键盘字母/ASCII 值的程序。有点像取下键盘字母并移动它们的软件版本......有没有办法做到这一点?现在,我使用内部带有 GetAsyncKeyState() 的无限 while 循环来获取任何键入的字母,但我不知道如何获取该信息并将其更改并放回系统......非常感谢任何和所有帮助。
谢谢!
【问题讨论】:
标签: c++ keyboard ascii keylogger
这听起来像是有人在尝试编写一些讨厌的程序?
对于 Windows:基本思想是捕获窗口消息(WM_KEYDOWN 和 WM_KEYUP)并在传递它们之前更改键值/ID。
根据您的版本,这将要求您的代码以管理员权限运行。
我在这方面没有任何其他系统的经验,但基本想法很可能是相同的。
【讨论】:
wireKeyboardProc里面你必须检查通过的vkCode并相应地改变它写入某个文件。
CallNextHookEx() 将事件数据传递给其他处理程序(然后将其发送到活动窗口/程序)。如果您放下它(并且不发送任何内容),其他窗口和其他东西将不会注意到按键(这通常用于全局快捷方式)。提醒一下:不要在公司环境中与您不认为是您的朋友的人做如此讨厌的事情,因为这本质上是“破坏”。 :) 不能保证你能够伪造事件,但据我了解,这应该是可能的。