【问题标题】:X11 and fake keyboard / mouse eventsX11 和假键盘/鼠标事件
【发布时间】:2013-06-28 11:14:22
【问题描述】:

我想知道如何检测按键事件或鼠标指针事件是否由 xdotool 之类的(类似自动化的)应用程序生成。基本上,我正在编写一个应用程序来检查是否没有真正的鼠标或键盘活动。在我的应用程序中,只有当我们没有真正的鼠标移动或键盘上的真正按键/释放时,我才想标记空闲活动。任何关于此的参考都会很棒。我想使用纯 xlib API 来做到这一点。不想使用 XCB。 XRecord 等任何扩展(我目前用于捕获事件)都可以。

提前致谢。

【问题讨论】:

  • 为什么要检查是否没有真正的鼠标或键盘活动?我怀疑某些特殊的用户界面(可能是针对视障用户)可能会提供“虚拟”鼠标等……为什么要检测自动化工具? (一个有足够积极性的人总是可以绕过你的检测,例如通过充分修补 Xorg 服务器......)
  • @Basile,您提出的观点是正确的。基本上我正在编写一个小应用程序,它应该向我报告用户在机器(PC)上的空闲活动。使用这些数据,我想确定一个人每周有效工作的时间(这仍然假设一个人使用鼠标或键盘意味着工作)。真实的键盘/鼠标事件表示支持上述观点的身体活动。我没有考虑过此应用程序的可访问性规定,我稍后再讨论。谢谢
  • 您确定部署这样的“间谍”程序是合法的(未经用户明确同意)吗?在某些国家(可能在法国)可能不会,我相信任何用户都可以绕过它。人们可以(并且确实)工作而不总是打字......人们可以打字而不需要真正工作......

标签: linux ubuntu x11 xlib xserver


【解决方案1】:

是的,有可能。

所有与鼠标移动和点击相关的 X11 事件都有一个名为“send_event”的成员。 如果事件由应用程序发送,则设置为“True”。如果它是由 X-Server 生成的,即由用户操作生成,则为“False”。

如果 xdotool 使用 SendEvent 进行鼠标点击模拟,那么您将能够使用“send_event”成员检测到。

【讨论】:

    猜你喜欢
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    相关资源
    最近更新 更多