質問: 特定のウィンドウのキャプチャについて。 javaで特定のウィンドウのキャプチャを行いたいと思っています。 http://allabout.co.jp/gm/gc/80609/ このページで全体のキャプチャ方法はりかいできました。 しかし アクティブなウィンドウでもかまわないのですが、 できれば非アクティブな時にもそのウィンドウをキャプチャできるように 指定したいのです。 どなたか力をお貸しくださらないでしょうか。 よろしくお願いします。
回答: 現在実行中のjavaアプリケーションのウインドウならば、そのウインドウのrectを取得し、キャプチャーすることで、その部分だけを取り出すことができます。robotのcreatescreencaptureの引数で、キャプチャーしたいjframeのgetboundsで得たrectを渡します。 アクティブウインドウをキャプチャーしたい場合、開いているjframeをアプリケーションで保管し、どのウインドウが選択されているかを管理するように自分でコーディングする必要があるでしょう。 ただし、外部のプログラム(java以外の普通のアプリ)のウインドウは取得できません。javaは仮想マシン内で動くので、外部のプログラムとの連携は弱いのです。どうしてもというなら、jniという外部とのインターフェイスを利用し、c/c++などでその部分だけ作って呼び出すようにしないといけないでしょう。javaの機能としては用意されていないと思います。