如何仅检测鼠标/键盘的空闲时间,而不检测其他输入设备的空闲时间?

问题描述 投票:0回答:1

GetLastInputInfo()
,例如使用python检测空闲时间,对鼠标和键盘输入敏感,但它也会受到游戏控制器输入的干扰,我想忽略它。

有没有简单的方法可以做到这一点?

一种方法是使用原始输入,例如使用 winapi 从设备读取输入时遇到麻烦,需要通过记录事件并可以查询的同步写入和读取线程来包装。

python windows winapi
1个回答
0
投票

您可以做的一件事是安装WH_MOUSE_LL

WH_KEYBOARD_LL
类型的
系统范围的钩子
,它们以可以由加载DLL的代码读回的方式存储最后一次鼠标或键盘输入活动时间。有很多方法可以将这些数据从 DLL 传送回加载器,包括但不限于:

  • DLL 本身在 GetLastActivityTime() 等函数中导出时间戳
  • 命名共享内存
  • 命名管道
  • 邮槽
  • 一个普通的磁盘文件
  • 注册表值
  • TCP通讯

...所以我不会给出详细的代码示例。

请注意,如果您的代码未经过数字签名,

WH_KEYBOARD_LL
类型的挂钩很可能会被防病毒软件检测为恶意软件,因为使用此功能的未知代码很可能是键盘记录器

© www.soinside.com 2019 - 2024. All rights reserved.