4

Javaで書かれたアプリケーションがあります。アプリケーションにはいくつかのUIコントロール(テキストボックス、グリッド、ボタンなど)があります。UI要素を一覧表示してそこからテキストデータを読み取ることができる.NETアプリケーションを開発する必要があります。Javaアプリのウィンドウハンドルを取得するのに問題はありませんが、その後は行き詰まります。

Javaアプリはサードパーティであり、いかなる方法でも変更することはできません。Javaの経験はありませんが、C#の経験は豊富です。Java Access Bridgeを使ってみましたが、うまくいかないようです。私が理解している限り、JavaアプリはJava Accessibility APIをサポートする必要がありますが、おそらくサポートしていません。

同様のタスクであなたの経験を共有するか、単に私を正しい方向に向けてください。

Java VMの外部からUIコントロールを列挙/読み取る方法は?

4

3 に答える 3

3

私は解決策を見つけました。私のJavaアプリではJavaAccessBridgeがまだサポートされているようですが、最初は機能させることができませんでした。

チップ:

  1. WinFormsアプリはJavaAccessBridge APIを使用するために必要であり、コンソール.NETアプリからアクセスしようとしました。(WPFもサポートされているはずですが、テストしていません)

  2. Windows_runメソッドは、フォームのコンストラクター内で呼び出す必要があります。他のAPI関数にアクセスする直前。

  3. Java Access Bridgeは、ファイルaccessibility.properties(フォルダー:C:\ Program Files \ Java \ jre7 \ lib)で有効にする必要があります。

于 2012-11-14T12:01:26.640 に答える
0

唯一の方法は、.NET->JavaまたはJava->.NETを手動で変換するか、いくつかの商用コンバーターがある場合があります。インスタンスを作成することでJavaVM内でJavaコードを実行できますが、COMではないJavaへのそのような相互運用はありません。ただし、これは役立つ場合があります。

于 2012-11-13T22:29:17.317 に答える
0

このStackOverflowの例のコードのようなことを実行して、すべての子ウィンドウを取得してから、WM_GETTEXTを使用してテキストデータを読み取る必要があります。

于 2012-11-13T22:29:41.203 に答える