トップ 一覧 置換 検索 ヘルプ RSS ログイン

ウインドウハンドラを取得するの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!Javaのバージョンが 1.2, 1.3の場合
{{div_begin class="pre"}}
int hwnd = ((sun.awt.windows.WToolkit)java.awt.Toolkit. getDefaultToolkit()).getNativeWindowHandleFromComponent(f);
{{div_end}}
で取得できる。1.4の場合は、 JNIを使って取得する。

!!!Javaのバージョンが 1.4の場合
!!方法1
{{ref windowHandler.java}}
{{ref hwndTest.c}}
!JNIのコンパイル
{{div_begin class="pre"}}
java test
javah test
gcc-2 -O2 -Os -mwindows -mno-cygwin -shared test.c -ID:\Development_tools\java\jdk1.5.0_06\include 
-ID:\Development_tools\java\jdk1.5.0_06\include\win32 -Wl,--enable-auto-import -Wl,--add-stdcall-alias -o test.dll
{{div_end}}


!!方法2
{{ref windowHandler2.java}}
{{ref hwndTest2.c}}
!JNIコンパイル
 gcc -shared hwndTest2.c  -Ic:/java/include/ -Ic:/java/jinclude/win32/ -Wl,--enable-auto-import -Wl,--add-stdcall-alias -o windowHandler2.dll -LC:/java/jre/lib -LC:/java/lib -ljawt

!実行
jre の java で実行する。JDKのbin以下のjavaでは実行に失敗するかも

{{category2 プログラミング言語,Java}}