2012-03-23 4 views
1

私はおそらくJavaでGUIを使ってウィンドウマネージャを作ろうと考えていました。しかし、自分のプログラムで所有されていないウィンドウを移動する最善の方法を見つけ出すのには苦労しています。Javaを使ってWindowsのウィンドウを画面上で動かすには?

これまでのところ、Windows APIとのインターフェイスにはJNIを使​​用する必要がありましたが、役立つ例は見つかりませんでした。

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

ありがとうございます!

PS。

+0

私はネイティブである任意の言語は、VM環境よりもはるかに良いだろうと確信しています... – Deanna

答えて

3

高速ウィンドウマネージャを使用することを目的としているのなら、C++やC#、あるいはおそらくDelphiを使っている方が良いでしょう。

しかし、あなたがJavaをよく知っていれば、それを行うことができます。

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

いくつかは以下のとおりです。

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)を取得したら、あなたはそのウィンドウで好き行うことができます。

EnumWindows function reference at MSDN

関連する問題