如何在C++中模拟假按键
How to simulate a fake keypress in C++
我想做一个反键盘记录程序,我想出了一个主意,当用户在窗口中输入一些文本时,模拟一个随机的假按键。比方说,我的应用程序每次在Firefox、GoogleChrome窗口内按键时都会模拟一次假按键。
我已经尝试过SendInput,但它发送的字符是真实的(它不是假的,字符是真实打印的,这不是我想要的)。我已经有了一个一次性生成随机字符的功能,但问题是将其作为伪按键发送。
因此,目标是,如果用户感染了任何类型的键盘记录程序,键盘记录程序将只接收我发送的伪造生成的字符,而而不是用户真正录制的内容。我的项目将主要在Windows、控制台应用程序和SMFL Gui上,你有什么建议吗?
是的,您可以在Windows平台上模拟按键。
Microsoft Windows平台使用消息传递系统。按下某个键时,操作系统会向侦听任务发送一条消息,其中包含按下的键的值。
MSDN网站包含有关如何发送按键消息的更多详细信息。
此外,在StackOverflow上也有类似的问题。
试试这些搜索词:
- MSDN C++按键模拟
- MSDN C++按键消息
- MSDN发送按键信息c++
- StackOverflow C++按键模拟窗口
编辑1:
还有一些方法可以将侦听器连接到按键消息。例如,密钥记录器可以注册为主侦听器,接收消息,处理密钥,然后将消息转发到其他侦听器。
如果你想绕过键记录器,你必须深入研究键盘挂钩并了解它们是如何工作的。
相关文章:
- 如何使用Google Mock来模拟gettimeofday()
- G锁定铸造到基础上会释放模拟行为
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 落砂模拟碰撞检测C++和SFML
- 在gtest.中使用fff.h模拟系统API
- 谷歌模拟和覆盖关键字
- 用C#中的并集模拟C++嵌套结构
- 在同一模拟中使用静脉和静脉_ inet内容时出现运行时错误
- 在模拟器中使用并集来模拟CPU寄存器有多合适
- 我写了一个C++程序来模拟Enigma机器.我没有得到输出
- 如何模拟不同边数的骰子滚动?
- 模拟持久按键
- 使用SIR模型的疾病爆发模拟
- 在 c++ 中模拟输入并在 JAVA 中读取它?
- 转发变量参数列表以模拟 std::thread
- 如何在谷歌模拟中匹配 C 样式数组
- 如何使用兰德随机化模拟点击
- 模拟GPS数据,以便使用Qt与Traccar一起使用
- QKeyPress - 在Qt中模拟按键
- 如何使用不同的谷歌模拟运行相同的谷歌测试用例?