在 Lubuntu 18.04 上,我尝试截取当前焦点窗口的屏幕截图。我使用import
Imagick 进行以下操作https://stackoverflow.com/a/32165476。
它在 lxterminal 选项卡中失败
$ import -window "$(xdotool getwindowfocus -f)" /tmp/file.png
import-im6.q16: unable to read X window image `31457284': Resource temporarily unavailable @ error/xwindow.c/XImportImage/4982.
import-im6.q16: missing an image filename `/tmp/file.png' @ error/import.c/ImportImageCommand/1287.
它在 xterm 窗口中成功
$ import -window "$(xdotool getwindowfocus -f)" /tmp/file.png
$
您知道问题发生的原因吗?我该如何解决这个问题?谢谢。
#!/bin/sh echo "Enter the name of the window:" read window window_id=`xwininfo -name $window | awk '{print $4}' | grep -i 0x` import -window $window_id $window.jpg
就像我之前说的,这并不能完全发挥作用,但我还是想发布它。我已经让它在计算器、词典、Atomix 等小程序上工作了……但 Firefox、gedit 等程序不行。如果您尝试在较大的程序上执行此操作,您实际上会收到以下类型的错误:
import: unable to read X window image `0x3200efb': Resource temporarily unavailable.
我认为这是因为这些程序实际上产生了多个窗口 ID:
dill@LAMP:~$ xwininfo -tree -root | grep gedit | awk '{print $1}' 0x3000071 0x3000003 0x3000001 0x300001e
答案1
我在 Kubuntu 18.04 上。我试过
$ sleep 5s && import -window "$(xdotool getwindowfocus -f)" ~/Desktop/file.png
import-im6.q16: unable to read X window image `83886084': Resource temporarily unavailable @ error/xwindow.c/XImportImage/4982.
import-im6.q16: missing an image filename `/home/dkb/Desktop/file.png' @ error/import.c/ImportImageCommand/1287.
和
$ sleep 5s && import -window "$(xdotool getactivewindow)" ~/Desktop/file.png
$
后一个命令适用xdotool getactivewindow
于 konsole(版本 17.12.3)和 lxterminal(版本 0.3.1)。
sleep
是让我从终端切换到另一个应用程序的窗口。该命令捕获 Firefox 和 geany 的活动窗口。
至于
你知道这个问题为什么会发生吗?
我不知道,但搜索man xdotool
告诉windowfocus
我们
使用 XSetInputFocus,它可能被某些窗口管理器或程序忽略。
但是否也适用于getwindowfocus
尚未明确提及。