“键盘记录”和“全局快捷键”的区别是什么?

2015-03-17 17:16:42 +08:00
 stupidcat
最近用C++“写”(网上抄~)了个Windows键盘记录器,本质就是用Windows.h里的GetAsyncKeyState(char key)函数,轮询键盘上的每个按键。
我随后在虚拟机里装了360,然后运行这个程序,一下就检测出来“该程序正在记录您的键盘输入”了。
但是我又想到,某些软件的全局快捷键,也是在任何时候都可以响应的。例如,我把“ctrl+alt+1”设置为音乐播放器的“播放/暂停”快捷键,这个快捷键组合即使在玩全屏幕游戏的时候也可以正常起作用。还有QQ的接收消息快捷键等。

现在问题来了:
为什么这些快捷键不会被安全软件报警为“正在记录键盘输入”呢?快捷键走的是另一套机制吗?
如果是另一套机制,那能不能通过该机制,来记录键盘输入,而不被安全软件发现?
1669 次点击
所在节点    问与答
4 条回复
yfdyh000
2015-03-17 17:26:28 +08:00
bestsanmao
2015-03-17 17:59:25 +08:00
1楼正解
全局快捷键并不是轮询键盘状态,而是向系统注册一个热键
wzxjohn
2015-03-17 18:04:52 +08:00
而且快捷键必须同时按住制定的控制键,所以跟键盘纪录完全不一样。。。
xenme
2015-03-17 18:50:33 +08:00
同上面的解释,正常来说快捷键注册后,当系统发现有人按了快捷键,会主动去通知注册了该快捷键的程序,就不用你一直浪费CPU在那里等了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/177545

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX