
UWSCでPEEKCOLORを使い指定ウィンドウ内に、指定したカラーコードがあるかを判別して
そこをクリックさせたいのですが、画像認識の場合
ACW(GETID("xxxxx"),880,0,800,600,0)
CHKIMG("xxxx.bmp",0)
x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入
BTN(LEFT, CLICK, x+30, y-30, 60)
x=G_IMG_X という命令で指定ウィンドウ内の画像を(x,y)座標に自動で代入してもらえるのですが、PEEKCOLORの場合はどういった書き方をすればいいのでしょうか??
上手く言いたいことが伝わっているか不安ですが、理解できる方宜しくお願いします。

No.2ベストアンサー
- 回答日時:
>PEEKCOLORの後にBTN命令入れましたが、指定カラーコード以外の場所でも手当たり次第クリックしてしまってます。
それって、次みたいにしたってことですか?だったら当然そうなります。
ダメな例:
For x=1 to 800
For y=1 to 600
If PeekColor(x,y)=探しているカラーコード Then Break 2
Btn(LEFT,CLICK,x,y)
Next
Next
良い例1:
For x=1 to 800
For y=1 to 600
If PeekColor(x,y)=探しているカラーコード Then Break 2
Next
Next
Btn(LEFT,CLICK,x,y)
良い例2:
For x=1 to 800
For y=1 to 600
Ifb PeekColor(x,y)=探しているカラーコード
Btn(LEFT,CLICK,x,y)
Break 2
EndIf
Next
Next
回答ありがとうございます。
まさにダメな例をやっていました。
良い例を試したところ、発見までに多少時間がかかるもののしっかりクリックしにいってくれました。
分かりやすい回答ありがとうございました。m(_ _)m

No.1
- 回答日時:
PEEKCOLOR関数の動作は、「ユーザーが指定した座標のカラーコードを返す」であり、「指定されたカラーコードが画面上のどこにあるかを返す」わけではありません。
なのですげ~原始的に、探したい範囲をループでなめて自分で探すしかないですね。例えば以下のスクリプトを実行すると、xとyに見つかった座標が入っています。For x=1 to 800
For y=1 to 600
If PeekColor(x,y)=探しているカラーコード Then Break 2
Next
Next
これを見て「じゃあ探したい色1ドットの画像を使ってChkImg関数で探せば一発じゃんか、俺って頭いい~!」と思った人は、ワナにはまります(苦笑)。ChkImg関数って、あまり小さい画像は見つけられないんですよね。経験上、縦横16ドット以上ない画像は見落としてしまうようです。(バージョンによって見つけられる大きさが変わるかも知れない)
あとワナがもう一点あって、PeekColor関数はウィンドウIDが引数にありません。すなわち、デスクトップに見えているものしか探さないので、もし検索対象が別のアプリに隠されていたらそれは見つかりません。なので必ず事前に、Acw関数でアクティブにしておく必要があります。
回答ありがとうございます。
CHKIMGだと画像が小さすぎると反応しないし、少しでも画像に変化があると読み込みませんよね。
書かれた通りの文をエディタに書き込んで動かして見たのですが、画面左上からy600座標の地点までマウスカーソルが動いては画面左上に戻るのを繰り返します。
PEEKCOLORの後にBTN命令入れましたが、指定カラーコード以外の場所でも手当たり次第クリックしてしまってます。
ひょっとして、指定範囲内にカラーコードがあった場合クリックということであれば、指定カラーコードの部分をクリックするわけではないでしょうか??
分かりにくい質問ですいません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) uwscとWinShotを使いスクリーンショットを撮る 1 2022/06/30 21:15
- その他(プログラミング・Web制作) uwscのCHKING関数の画像の認識がうまくいかない。 1 2022/06/18 20:55
- PHP PHP echo バックスラッシュの使い方 img要素 2 2023/01/08 22:46
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- Windows 10 2つのウィンドウ選択時の表示について 10 2023/07/25 08:48
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外付ディスプレイで AutoHotkey...
-
UWSCのPEEKCOLORについての質問
-
Excel VBAで他アプリケーション...
-
VBでデスクトップ上のアイコン...
-
LineTo,MoveToについて
-
C言語でグラフ作成??
-
bitbltからの画像保存ができま...
-
uwscについて、同一の画像(仮...
-
UWSC画像認識で座標の位置がず...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
CloseとDisposeの違い
-
エクセルVBAで、MsgBox やInput...
-
【Excel】特定の文字を含むセル...
-
Excelシート上のマクロを登録し...
-
switch の範囲指定
-
VBA エンターキーでイベントに...
-
UMLでの例外処理
-
マクロを登録しているボタンが...
-
VBAでループ内で使う変数名を可...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#で、画像の、指定した座標の...
-
UWSC画像認識で座標の位置がず...
-
C言語でグラフ作成??
-
Excel VBAで他アプリケーション...
-
VBA HTML要素または文字の座標...
-
uwscについて、同一の画像(仮...
-
VBでクリックイベントを発生さ...
-
エクセルVBAで画像を貼り付ける...
-
マウスイベントが動かない
-
UWSCのプログラミングついて教...
-
PostScriptについて
-
VBでデスクトップ上のアイコン...
-
UWSCのCHKIMG関数について
-
LineTo,MoveToについて
-
マウスカーソルの移動
-
UWSファイルの編集?
-
DirectX テクスチャの拡大
-
VBAで ScreenToClient を使いたい
-
高さのあるクォータービューの...
-
UWSCでPEEKCOLORを使い指定ウィ...
おすすめ情報