2017-03-11 7 views
-2

申し訳ありませんが、この質問はかなり広範ですが、私はそれについてどうやって行くのか手がかりがありません。アプリケーションから画像を取得

Javaでは、どのようにWindowsアプリケーションがイメージの形式で表示しているのですか?

私は、画像の内容にモニタ全体ではなく、1つのアプリケーションウィンドウからのフレームだけを含めたいと思います。

私は、ウィンドウのタイトルからアプリケーションウィンドウを取得することが始まるかもしれませんが、Javaは他のプロセスのGUIにアクセスすることさえできますか?

+2

Robotクラスは、画面上の画像を取得できます。独立したウィンドウプロセスを識別するには、コアJavaを超え、JNI、JNA、その他のサードパーティライブラリなどの他のツールを使用する必要があります。これは、おそらくすべての解決策がOS固有のものであることを意味します。 –

答えて

0

純粋なJavaでできることは、Robotクラスを使用して指定された長方形を取得することです。次のQ & Aは、矩形が画面全体である場合の方法を示しています。 Screenshot capture in Window 8 OS

  • (これは、すべての非ヘッドレスのJava SEプラットフォームのために働く必要があります。)

    簡単少しだ

    。ハードビットはどのスクリーンショットの長方形を計算しています。 Javaライブラリには、「他の」アプリケーションの画面の場所に関する情報を検索するAPIはありません。そのような情報を見つけるには、Javaアプリケーションがネイティブ・ライブラリーまたは外部ユーティリティー・コマンドを介してネイティブOSと対話する必要があります。これは必然的にプラットフォーム特有のものになります...つまり、MacとLinux、そしておそらく他のバージョンのWindowsでも破損することになります。

    私はこれをJavaでまったくやろうとしません。代わりに、私は外部アプリケーションとして実行できるOS固有のスクリーンショットアプリケーションを探します。例えばProcess.execを使用します。あるいは、私はそのようなアプリを書く方法を(例えば)C#で考え出すでしょう。


    私は、ウィンドウのタイトルからアプリケーションウィンドウを取得することは、スタートかもしれないと思うが、Javaでも、他のプロセスののGUIへのアクセス権を持っていますか?

    いいえ、いいえ。

関連する問題