【问题标题】:Change the ASCII of a typed character更改键入字符的 ASCII
【发布时间】:2012-03-18 11:00:48
【问题描述】:

我希望制作一个混合所有键盘字母/ASCII 值的程序。有点像取下键盘字母并移动它们的软件版本......有没有办法做到这一点?现在,我使用内部带有 GetAsyncKeyState() 的无限 while 循环来获取任何键入的字母,但我不知道如何获取该信息并将其更改并放回系统......非常感谢任何和所有帮助。

谢谢!

【问题讨论】:

    标签: c++ keyboard ascii keylogger


    【解决方案1】:

    这听起来像是有人在尝试编写一些讨厌的程序?

    对于 Windows:基本思想是捕获窗口消息(WM_KEYDOWN 和 WM_KEYUP)并在传递它们之前更改键值/ID。

    根据您的版本,这将要求您的代码以管理员权限运行。

    我在这方面没有任何其他系统的经验,但基本想法很可能是相同的。

    【讨论】:

    • 好吧,我和我的朋友一直在互相恶作剧一个星期。我刚被门框上的一个水桶击中,我正在寻找让他回来的方法:P
    • 另外,你有我可以使用的代码示例吗?实际上,我以前从未使用过 C++。我是一个 java 人,但看到 java 更多地是一个“本地”的东西(......它仅限于在它的小窗口中,它不能出去并在系统上做其他事情),它并不真正适用我想做的事。
    • 认为这个应该可以工作(就像一个最小的例子):developer-resource.blogspot.de/2008/07/…(没有测试它。)在wireKeyboardProc里面你必须检查通过的vkCode并相应地改变它写入某个文件。
    • 谢谢!!我可以弄清楚如何随机分配一个新的 ASCII 值,但是如何将新值放回系统中?
    • 您必须通过CallNextHookEx() 将事件数据传递给其他处理程序(然后将其发送到活动窗口/程序)。如果您放下它(并且不发送任何内容),其他窗口和其他东西将不会注意到按键(这通常用于全局快捷方式)。提醒一下:不要在公司环境中与您不认为是您的朋友的人做如此讨厌的事情,因为这本质上是“破坏”。 :) 不能保证你能够伪造事件,但据我了解,这应该是可能的。
    猜你喜欢
    • 2013-01-07
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    相关资源
    最近更新 更多