1

Windows XP 上の Java アプリケーション (JRE 1.5.0_12) で、ネイティブ メソッドを呼び出します。

public native int attachImage( ... );

... Visual C++ 6.0 .dll に存在します。アプリケーション モーダル ウィンドウが表示されます。問題は、このウィンドウにフォーカスがある間、アプリケーションのトレイ アイコンがマウス クリックに反応しないことです。このウィンドウが表示されると、ユーザーは添付するイメージを選択するために別のアプリケーションに切り替えてから、このアプリケーションを復元することがよくあるため、これは問題です。

4

2 に答える 2

1

使用している GUI パッケージは何ですか?

JNI 呼び出しに頼らずにこれを実装できるはずです。

たとえば、SWT では、次のようにアプリケーションのモーダル シェルを開くことができます。

Shell shell = new Shell(display,SWT.APPLICATION_MODAL);

スイングの場合、これは次のようになります。

dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
于 2008-11-19T23:10:58.763 に答える
0

attachImage メソッドは、親ウィンドウを Java アプリケーション ウィンドウに適切に設定していませんか? そのための hwnd を取得するのは難しいかもしれませんが (GetForegroundWindow/etc?)、必要かもしれません。

また、なぜイメージ部分は JNI である必要があるのですか? JNI部分を完全に回避する解決策を見つけるのに役立つかもしれませんか?

于 2008-11-19T23:39:32.607 に答える