2

おそらくJavaで、GUIを備えたウィンドウマネージャーを作成することを考えています。ただし、自分のプログラムが所有していないウィンドウを移動する最善の方法を見つけるのに苦労しています。

これまでのところ、JNI を使用して Windows API とやり取りする必要があるように思われますが、役立つ例は見つかりませんでした。

誰もこれを行う方法を知っていますか?

ありがとう!

PS。これを行うためのより良い言語があれば、私は必ずしも Java に縛られているわけではありません。

4

1 に答える 1

3

目的が高速なウィンドウ マネージャーを使用することである場合は、C++ または C#、あるいは Delphi を使用する方が確実に適しています。

しかし、Java に最も精通している場合は、それを行うことができます。

(エージング) JNI を選択した場合は、Java アプリケーションで使用する C または Delphi で DLL を作成する必要があります。Windows のウィンドウ処理 API 関数にアクセスするには、代わりにJNAを使用する必要があります。

使用する関数の一部は次のとおりです。

    HWND WINAPI GetWindow(HWND hWnd, UINT uCmd);
    HWND WINAPI FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName);
    BOOL WINAPI EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam);
    HWND WINAPI WindowFromPoint(POINT Point);
    BOOL WINAPI MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint);

ウィンドウ ハンドル (HWND) を取得したら、そのウィンドウで好きなことを行うことができます。

MSDN の EnumWindows 関数リファレンス

于 2012-04-04T10:14:05.743 に答える