Windowsシステムで現在開いているウィンドウと何らかの形でやり取りする方法があるのだろうかと思います。私はつまり、そのプロパティの一部を得ることに興味を持っています:Windowsとプログラムで対話する
- 場所
- 寸法
- がバックグラウンドで動作していますか?
- おそらくウィンドウタイトル
好ましくは、私はJavaでそれを行うしたいと思いますが、任意の提案を歓迎します。
Windowsシステムで現在開いているウィンドウと何らかの形でやり取りする方法があるのだろうかと思います。私はつまり、そのプロパティの一部を得ることに興味を持っています:Windowsとプログラムで対話する
好ましくは、私はJavaでそれを行うしたいと思いますが、任意の提案を歓迎します。
A comment Javaのための良いリソースにリンクされています。 C++でネイティブにしたい場合に備えて、関連するWindows APIを実行します。
システム内のすべてのトップレベルウィンドウを列挙するには、EnumWindows
を使用します。 EnumWindowsProc
のシグネチャを持つコールバック関数を与えるので、各ウィンドウハンドルを最初のパラメータとして受け取ります。
GetWindowRect
機能を使用して、ウィンドウの位置(画面座標)と寸法を取得できます。受け取ったウィンドウハンドルを渡し、LPRECT
(RECT
へのポインタ)を出します。
ウィンドウが最大化されているかどうかを確認するには、GetWindowPlacement
を使用し、受け取ったWINDOWPLACEMENT
構造のshowCmd
フィールドを確認します。
最後に、ウィンドウのキャプションを取得するには、GetWindowText
を使用します。 (別として、別のプロセスでコントロールのテキストを取得する場合は、自分でWM_GETTEXT
メッセージを送信する必要があります)。
参照:[1](http://stackoverflow.com/questions/ 6091531/how-to-get-the-x-and-a-a-program-window-in-java)[2](http://stackoverflow.com/questions/11067484/get-titles-of-非Java-Windows-in-Java)[3](http://stackoverflow.com/questions/31312793/why-does-my-call-to-winapi-getwindowplacement-fail-using-jna) – theB