1

私はJavaでspy++に似たアプリを作成しようとしています。このアプリでは、マウスオーバーしているすべての要素のクラス/キャプション/ハンドルを取得できます。例:

  1. タスク バー上でマウスを動かすと、スパイ ツールは情報を次のように表示します。ハンドル: 000100AA キ​​ャプション: 実行中のアプリケーション クラス: MSTaskListWClass
  2. Windows電卓のボタンの1つにマウスを合わせると(「1」としましょう)、スパイツールにキャプションが表示されます:1

私はすでに次のコードで前景ウィンドウを取得しています:

GetWindowTextW(GetForegroundWindow(), buffer, MAX_TITLE_LENGTH);

およびプロセス名:

Pointer process = OpenProcess(PROCESS_QUERY_INFORMATION
                | PROCESS_VM_READ, false, pointer.getValue());
        GetModuleBaseNameW(process, null, buffer1, MAX_TITLE_LENGTH);

しかし、ボタン/テキストボックスのキャプションとクラスをまだ取得できません。同じことをするのを手伝ってください。

4

1 に答える 1

0

次の回答は、マウスクリックイベントです。

jnativehookを使用して、グローバル マウス クリック イベントを処理します。ユーザーがクリックすると、フォアグラウンド ウィンドウとその位置が表示されます。

ネイティブの winapi 呼び出しを持つ dll を作成する必要があります。次に、この dll を Java プログラムにロードします。

  1. まず、jnativehook のnativeMousePressedでグローバル マウス位置を取得します。
  2. フォアグラウンド ウィンドウのハンドルを見つけます。
  3. ハンドルから場所プロセス IDを取得します。
于 2013-10-21T05:10:44.807 に答える