Command-Line
非活動視窗的螢幕截圖
如何截取非活動視窗的螢幕截圖?如果我有 2 個視窗,我想擷取在後台執行的視窗的螢幕截圖。
為了詳細說明以前的答案和評論,擷取非活動視窗(如完全或部分隱藏)的螢幕截圖的能力似乎取決於視窗管理器。
使用以下(已經給出的)命令:
import -window <windowid> image.png
或者
xwd -id <windowid> | convert xwd:- image.png
(用於使用來自管道的標準輸入,
-
告訴輸入的格式)一個似乎能夠在Enlightenment(e17,使用 Fedora 19 測試)下擷取以下螢幕截圖:convert``xwd:
- 完全或部分隱藏的窗戶;
- 最小化視窗;
- 其他工作區上的視窗。
我檢查了Openbox(相同的配置)和KDE(使用舊的 Scientific Linux 4.8 和最新版本
ImageMagick
(是的,令人難以置信的編譯…)),在這兩種情況下,螢幕截圖都只顯示了顯示層頂部的內容——也就是說,只有螢幕上已經可見的內容。關鍵是該
import
命令檢查由tomap_state
返回的欄位,如果不是,則返回錯誤。可以檢查例如使用:XGetWindowAttributes``IsViewable``map_state
xwininfo -id <windowid> | grep 'Map State'
它似乎總是
IsViewable
在 e17 下,而IsUnMapped
一旦視窗最小化或其他什麼,它就在 openbox 和 KDE 下。不確定為什麼當視窗與其他 WM 部分恢復時,螢幕截圖總是與 e17 一起乾淨,而它與其他視窗混合,但顯然它也與 WM 處理顯示的方式有關。
無論如何,顯然這是WM的問題。如果有一個 WM 列表能夠與無法對隱藏視窗進行螢幕截圖,那就太好了——我不這樣做。
“非活動”是什麼意思?“沒有焦點”或“被其他視窗隱藏”?在第一種情況下,gimp 會毫無問題地執行此操作(文件 -> 創建 -> 螢幕截圖)。在第二種情況下,它更困難(如果可能的話)。