我正在为个人兴趣创建一个击键记录器,并且想要知道如何捕获它们并将它们用作函数(如关键快捷键).
我得到了代码,以了解keylogger和GetAsyncKeyState()如何在这里工作.
我让它在Code :: Blocks下运行,但最奇怪的是当我检查我的任务管理器时,我的CPU使用率上升到100%.当我关闭程序时,它会回落,当我重新打开时,它会回到100%.
我认为这是因为无限循环不断检查输入,但我想知道是否有任何方法可以在不丢失功能的情况下降低CPU使用率.
PS我如何制作关键捷径?例如,按Ctrl+ E键退出程序.
你的程序基本上会占用它所能用的任何CPU时间,因为它永远不会有理由停止执行 - 当它到达循环结束时它立即再次开始,并且没有理由延迟循环体内的任何处理.
大多数应用程序不会连续轮询键盘的状态,而是监听操作系统广播的键盘事件.在监听事件时,您的程序无需消耗CPU时间,因此将在事件发生之前休眠,从而释放处理器以供使用.
(游戏通常是一个例外,因为它们通常会轮询键盘状态.但是,它们通常会限制它们执行此操作的频率 - 通常是最多一次一帧 - 因此CPU使用率仍然有限.)
| 归档时间: |
|
| 查看次数: |
3916 次 |
| 最近记录: |