当我使用 Windows 时,我有时很好地利用了 WinSpy++,它允许指向窗口或控件(小部件、窗口元素)以查看有关它的详细信息(包括结构/类的字段值)描述这个特定的实例),向它发送窗口管理器消息等。我一直在使用它的常见琐碎任务之一是从不可选择的小部件(如标签,不允许从其中选择和复制文本)复制文本就像文本字段一样)。是否有类似的工具可以与 GNU/Linux GUI 应用程序一起使用?
答案1
答案2
窗口管理器和 X 服务器都不知道小部件/控件,因此没有标准方法可以让工具向系统查询另一个应用程序小部件的详细信息。应用程序主要向 X 服务器发送像素图、多边形绘制操作和文本绘制操作等内容。
然而,有些工具可以附加到进程并检查其小部件工具包的数据结构。对于使用 GTK+ 的应用程序,有寄生虫。寄生虫的一个分支现在是包含在 GTK+ 中从 3.14 版本开始。
对于 Qt,快速搜索就会出现Qt 检查器,受到 KSpy 的启发,KSpy 是一个隐藏在 KDE 存储库中的工具。
如果您需要找出应用程序使用哪个小部件工具包,可以使用命令行工具列出它所依赖的库ldd
。
答案3
基本上,不是真的。
要获取有关窗口的信息,您可以使用
xwininfo
命令。然而,毫不奇怪,因为 X11 与 Windows 不同,它不会打印相同的信息。我不知道有什么方法可以从不可选择的控件中复制文本,尽管这些可能不如 Windows 下常见。
至于发送窗口管理器消息,我不确定。例如,您也许可以使用基于 XRECORD 扩展的工具西尼。不过,我从来没有尝试过这个。