【问题标题】:Recording X windows events记录 X windows 事件
【发布时间】:2014-09-12 16:47:13
【问题描述】:

我是 X windows 的新手,但对 Unix 有一定的了解。

我的项目要求我在 X 窗口系统上跟踪用户输入和输出。例如,如果使用 GUI 配置路由,我想知道使用了什么应用程序以及配置了哪些路由。到目前为止,我已经探索了以下选项并取得了部分成功。

1) 尝试使用 LD_PRELOAD 挂钩 XDrawString 和 XDrawText 等函数。 2)使用xwininfo获取window id和xev等工具。 3)查看了本论坛中的类似讨论,尤其是关于 xev 和 xinput 的讨论

1)如果 X11 是静态链接的,可能无法使用?没有把握。 2)xev 不记录使用 gedit 编辑的文件或尝试从 GUI 重命名文件的按键事件 3)我正在尝试通过 X windows 系统内部。

到目前为止,我很沮丧。任何输入/指针将不胜感激。

【问题讨论】:

  • 1) 并非所有 x11 应用程序都使用 xlib。要拦截所有事件,您需要在网络级别(tcpdump / libpcap)进行监听
  • 您想创建一个非常复杂的 AI。 X11 界面很容易成为您面临的最微不足道的挑战。 XDrawString 和朋友们不会帮助你(无论是在 LD_PRELOAD 级别还是在 tcpdump 级别),因为这些天几乎没有人使用这部分协议。字符在客户端绘制并作为位图推送到服务器。如果您想知道屏幕上的文本是什么,则必须对像素进行 OCR。
  • xlib 钩子有用吗?我想它不会总是因为根据 Andrey xlib 可能不会一直使用。

标签: x11


【解决方案1】:

我想你想要 Xnee 项目中的 cnee 程序,它使用 X 窗口系统 Record 扩展。我看到的 cnee 示例几乎总是关于记录输入事件,但是,根据 Xnee 手册https://xnee.files.wordpress.com/2012/10/xnee1.pdf,第 3.2.1 节(“记录”),“Xnee 可以记录整个 X11 协议,而不仅仅是鼠标和键盘事件。”

关于字体操作,我相信 X 字体工具(主要通过 X 字体服务器)也随着时间的推移而发展,因此您关心的应用程序可能正在执行您可以跟踪的 X 字体操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多