非アクティブウィンドウのスクリーンショットを撮るには? 2つのウィンドウがある場合は、バックグラウンドで実行されているウィンドウのスクリーンショットをキャプチャしたいと思います。
ベストアンサー1
以前の回答とコメントを詳しく説明すると、非アクティブウィンドウ(完全にまたは部分的に隠されているなど)のスクリーンショットをキャプチャする機能は、ウィンドウマネージャによって異なります。
次の(与えられた)コマンドを使用してください。
import -window <windowid> image.png
または
xwd -id <windowid> | convert xwd:- image.png
( -
of はconvert
パイプの標準入力を使用してxwd:
入力形式を通知するために使用されます)啓発(e17、Fedora 19でテスト)次のスクリーンショットをキャプチャしてください。
- 完全にまたは部分的に隠されたウィンドウ。
- ウィンドウを最小化します。
- 別のワークスペースのWindows。
確認しましたアンボクシング(同じ構成)とケード(以前のScientific Linux 4.8および最新バージョンの使用ImageMagick
(例:コンパイルは本当に素晴らしいです...))そして、どちらの場合も、スクリーンショットはディスプレイレイヤーの上にあるものだけを示しています。つまり、すでに画面に表示されているものだけが表示されます。表示されます。
要点は、import
コマンドが返されたフィールドを確認し、map_state
そうでない場合はエラーを返すことです。たとえば、次のコマンドを使用して確認できます。XGetWindowAttributes
IsViewable
map_state
xwininfo -id <windowid> | grep 'Map State'
IsViewable
常にe17の下にあるようで、IsUnMapped
ウィンドウが最小化されると、openboxとKDEの下にあります。
他のWMを使用してウィンドウが部分的に復元されたとき、なぜe17のスクリーンショットが常にきれいなのかはわかりませんが、他のウィンドウと混在しますが、明らかにWMが表示を処理する方法に関連しているようです。
とにかく、これは明らかにWMの問題です。 WMが隠されたウィンドウのスクリーンショットを撮ることができるものとないもののリストがあれば良いでしょう。私はそうしません。