ANo.2のものです。
>あとは、自分の使用するPC画面大きさに数値を合わせ、
>モニターしたい座標範囲は、マウスカーソルの現在座標を
>教えてくれるプログラムを使用して、数値を計測し、
>その値に書き換えれば、良いということで間違いないでしょうか?
>例)画面左上から、だいたいXに5mm、Yに5mm進んだ四方5mm程の範囲は
> 座標(7,7)~(12,12)の全変化を検出する
>というように、スクリプトを書き換えればいいと、認識しています。
上記の認識であっています。
>メッセージボックスで色が変化したことを教えてくれるもののようですが、
>色が変化した直後に、クリックを発動してくれると大変うれしく思います。
>贅沢を言ってしまい申し訳ありません。
クリックはBTN命令を使用します。
座標(100,100)をクリックしたいのであれば、MSGBOXの部分を、BTN( LEFT,CLICK, 100, 100)とすればよいです。
もし、変化したドット位置をクリックしたいということであれば、「Count = Count + 1」を「BREAK 3」に変更して、MSGBOXの部分を、BTN( LEFT,CLICK, x, y)とすればよいです。
ANo.2のスクリプトは起動時の画面との変化をチェックするので、リアルタイムな変化を繰り返し検出するのであれば、修正が必要となります。
変化したドット位置を繰り返しチェックしてクリックするスクリプトは以下のようになります。(前回のスクリプトからの変更点のみ)
ドット単位の処理なので、複数のクリックが行われますので、ご希望の動きとは異なると思いますが、、、
WHILE True
WHILE True
// 起動後の指定範囲の色を得て、変化をチェックする
FOR x = X_START to X_END
FOR y = Y_START to Y_END
NewColor = PEEKCOLOR( x, y )
Idx = (x * X_MAX) + y
// 変化あり?
IFB NewColor <> OldColor[Idx]
OldColor[Idx] = NewColor
BREAK 3
ENDIF
NEXT
NEXT
SLEEP(0.1)
WEND
//マウスクリック
BTN( LEFT,CLICK, x, y)
WEND
なお、私は使用したことがありませんが、指定した画像が画面上にあるかチェックするCHKIMGという命令があります。アイテム消失したときの画像が明確なら、こちらを使用したほうが良さそうですね。
お礼
ご回答ならびにご検討、誠にありがとうございました。 >UWSCは2次元配列が使えるようですので、OldColorを2次元配列に修正しました。 >プログラムとしてもこの方が読みやすいと思いますし。 プログラムに疎い私にはよく理解できませんでしたが、 実際にプログラムを走らせて見たところ、 見事に問題が解消されておりました。 とても、使いやすくなりました。 ありがとうございました。 私ももう少し理解できるよう頑張りたいと思います。 この度は長々と親切にご伝授して頂きまして 誠にありがとうございました。 この感謝の気持ちを大事にしたいと思います。 本当にありがとうございました。 失礼致します。
補足
念のため採択は少し時間を置いてから(長くて1週間程度)行わせていただきます。