2

私はJWinAutoとAutoITを初めて使用します。ファイルダウンロードコントロールの保存ボタンをクリックしたい。ボタンにフォーカスを合わせることができますが、現在のファイルダウンロードにフォーカスがない場合はクリックされません。トップに設定し、アクティブにしてフォーカスを合わせました。しかし、それでもボタンをクリックすることはできません。ここにコードを添付しています。誰かが私が何かを逃しているかどうか教えてもらえますか。

            private static final WString BLANK_STRING = new WString("");
            private static final WString FILE_DOWNLOAD = new WString("File Download");
            System.out.println("hi..");
            JAutoITx wrapper = JAutoITx.INSTANCE;
            wrapper.AU3_Init();
            wrapper.AU3_WinWait(FILE_DOWNLOAD, BLANK_STRING, 15);
            wrapper.AU3_WinActivate(FILE_DOWNLOAD, BLANK_STRING);
            System.out.println(wrapper.AU3_WinActive(FILE_DOWNLOAD, BLANK_STRING));
            wrapper.AU3_WinSetOnTop(FILE_DOWNLOAD, BLANK_STRING, 0);
            wrapper.AU3_ControlFocus(FILE_DOWNLOAD, BLANK_STRING, new WString(
                            "[CLASS:Button; INSTANCE:2]"));
            wrapper.AU3_ControlClick(FILE_DOWNLOAD, BLANK_STRING, new WString(
                            "[CLASS:Button; INSTANCE:2]"), BLANK_STRING, 1, 6660, 500);
            wrapper.AU3_Send(new WString("s"), 0);
4

1 に答える 1

2

ControlClick が機能するために、ウィンドウにフォーカスする必要はありません。アクティブにしたり、上に設定したりする必要もありません。これらは単なるテストであることは理解していますが、ControlClick 行だけで十分なはずです。

この行:

 wrapper.AU3_ControlClick(FILE_DOWNLOAD, BLANK_STRING, new WString("[CLASS:Button; INSTANCE:2]"), BLANK_STRING, 1, 6660, 500);

ControlClick "title", "text", "controlID" [, ボタン [, クリック数 [, x [, y ]]]]

基本的には、ボタンの左側から 6660 ピクセル、ボタンの上部から 500 ピクセルのボタンをクリックします。そのボタンはメッセージを受け取り、クライアントが独自の座標内をクリックしたかどうかを確認します。その場合、ボタンは 6660x500 ピクセルの大きさにする必要があります。ここでは推測していますが、それほど大きくないと確信しています。

特にパラメータはオプションなので、なぜそれを渡すのですか? 次のようなことをしてください:

 wrapper.AU3_ControlClick(FILE_DOWNLOAD, BLANK_STRING, new WString("[CLASS:Button; INSTANCE:2]"), BLANK_STRING, 1, 0, 0);

ControlClick だけで動作するかどうかを確認します。補足として、一部のアプリケーションは、コントロールに送信されたコマンドを処理する前にウィンドウがアクティブかどうかを確認しますが、ほとんどのアプリケーションは行いません。

これで質問の答えが得られない場合は、自分でテストを作成できるように、[ファイルのダウンロード] ボタンがどのアプリケーションに属しているかを知りたいです。

于 2011-04-27T10:00:59.937 に答える