uibot:みんなのためのロボット!
常用の「マウス」および「キーボード」クラス以外、uibotの「イメージ(image)」クラスコマンドも非常に強力です。 uibot creatorのコマンド領域で[画像検索(find image)]に移動し、[展開(expand)]をクリックして、次の図に示したいくつかのコマンドを見てみましょう。
[図形挿入]
[uibot creator] 51(imgstarget/3.png){width="30%"}でリストされているイメージコマンド
以下を行う画像検索コマンドから始めましょう。:
• .bmp、.png、.jpgなどの画像ファイルを指定します(可逆圧縮であるため、.png形式を使用することをお勧めします)
•画面の指定された領域を左から右、上から下にスキャンして、その領域にある画像が表示されているかどうかを確認します。ある場合、座標は変数として保存されることができます。そうでない場合、例外が発生します
複雑に見えますが、画像ファイルとスキャンできる領域を指定するだけです。操作はとても簡単です。たとえば、wechat windowsのログインボタンをクリックすることをシミュレートします
wechatを起動してログイン画面を開いたとします。 次に、uibot creatorでプロセスブロックを編集し、ダブルクリックまたはドラッグして画像検索(find image)コマンドを挿入する必要があります。次に、ターゲットコマンドのボタンと同様に、「ターゲット検索(find the target)」ボタン(左下)をクリックします。uibotcreatorは一時的にアイコンを非表示にし、それを矢印と画像(右)に変えます。この時点で、左のボタンを押して、青いボックスが描画されるまでそれを右にドラッグします。青いボックスには既に探したい画像が含まれているので、マウスの左ボタンを放すと完了です!!
[画像検索コマンドを使用し、画像と検索範囲を指定します] (imgstarget/4.png){width="90%"}
上記の操作で青いボックスだけが描かれたように見えますが、実際、uibot creatorがたくさんのことをしてくれました:
1. どのウィンドウが青いボックスに含まているかを決め、このウィンドウの特性を記録することができます。将来的には、まずこのウィンドウを見つけて、このウィンドウのスコープ内でダイアグラムを探す必要があります
2.青いボックスのスクリーンショットを、.pngファイルとして現在のプロセスに書き込まれているディレクトリのresサブディレクトリに自動的に保存しました。これが探したい写真です
[画像検索]コマンドをマウスでクリックして強調表示すると、次の図に示すように、右側のプロパティバーにコマンドのプロパティが表示されます。:
画像検索コマンドのプロパティ(imgstarget / 5.png){width = "30%"}赤いボックスの最も重要な二つのプロパティは、前述のようにuibot creatorが行ってくれました。その他の各プロパティの間に、「類似性(similarity)」とは0〜1の間数字のことです。 [空白(blank)] 小数点の空間へ加えられます。uibotでは、この数値が1に近ければ近いほど、各ポイントの一致性への要求が厳しくなります。必要になります。たとえば、0.9に対して、一般の一致が存在する限り、少しだけの不一致を許します。カーソル位置プロパティ(cursor position property)とは、画像が見つかったとき、画像が長方形でコマンドは点の座標を出力することなので、長方形内のその点に返すということです。アクティベートウィンドウプロパティ(activate window property)は、その図を見る前に、探しているウィンドウを前景に表示されるかどうかを示すものです。ウィンドウが隠されている場合、探しているウィンドウ上に画像があっても簡単に見つけることができません。そこで、このプロパティは通常に「はい」と設定します。
変更する必要のない他のプロパティはデフォルト値のままを保ちます。「プロパティへの出力(output to property)」では、変数名objpointが指定されており、画像が見つかった場合、その結果はこの変数に保存されます。これを以下に示します:
!! [view results width output debug information] (imgstarget/6.png){width="80%"}
探している画像が実際に画面に表示されていると仮定すると、実行後に次の結果が得られます。:
正確な値はコンピューターによって異なりますが、原則は変わりません。この値は「辞書」データ型です。値が変数objpointに格納されているとき、「x」と「y」値を「````objpoint[x]' ``and ``objpoint[`y]'」に書き込むだけで済みます。
画像の中心を取得したら、この位置をマウスでクリックして、wechatのログオン操作をシミュレートします。これを行うには、mouseクラスに含まれているmove moveコマンドとsimulate clickコマンドを選択してください。
simulate moveコマンドの最も重要なプロパティは、(次の図に示すように)画面の位置を操作することです。検索画像の結果である``objpoint["x"]`````と ``objpoint["y"]``をそれぞれ入力します。移動が完了したら、ログインボタンの中央でもう一度「モッククリック(mock click)」と左クリックを行います。この時点で、ログインボタンをクリックする操作をすべてシミュレートしました。
!! [結果の幅を表示、デバッグ情報を出力] (imgstarget/7.png){width="80%"}
上記の3つのコマンドは簡単に理解できます。uibotを一度も学習したことのないユーザーでも、その意味がほとんど分かります。しかし、ログインボタンをクリックする創作を完成させるには、さらに3つのコマンドが必要です。これは明らかに多すぎます。uibotが提供する「イメージ」クラスのすべてのコマンドをもう一度見てください。 最初のステップは「クリックイメージ」と呼ばれます。実際は、イメージの検索、移動のシミュレーション、クリックのシミュレーションという3つのコマンドの組み合わせです。まず、クリックイメージ(click image)コマンドを挿入し、コマンドでのターゲット検索(find target)ボタンを押します。次に、マウスをドラッグして適切なウィンドウと探したいイメージを選択します。その後、wechatの[ログイン]ボタンをクリックする機能をすばやく完成できます。ターゲットなしコマンドですが、ターゲットを使用してコマンドを操作することよりも簡単です。
それを念頭に置いて、「画像の上にマウスを移動する」、「画像が存在するかどうかを判断する」など、他のいくつかの画像クラスのコマンドの間に行き来できるようにする必要があります。