回答受付中の質問
UWSCを利用して、画面内に指定画像があるか無いかチェックし、あればクリックしたりするスクリプト文を作成したいのですが・・・、うまくいきません;
詳しい方、どうか回答お願いしますm(_ _)m
自分の作ったスクリプト文は下記のとおりです。
""のところの「A」はフォルダ名で、「neko.bmp」が画像ファイル名です。
IFB CHKIMG(".\A\neko.bmp")
MMV(G_IMG_X,G_IMG_Y)
KBD(VK_CTRL,DOWN)
BTN(LEFT,DOWN,G_IMG_X,G_IMG_Y)
KBD(VK_CTRL,UP)
BTN(LEFT,UP,G_IMG_X,G_IMG_Y)
ENDIF
上記のスクリプト文でUWSCを実行させると、なぜか「エラー NOT Found".\A\neko.bmp"」と出てき、実行してくれません。
画像の問題ではあると思うのですが、ちゃんとuws形式で保存されてますし、画像の方もbmp形式になってるので・・・どこか悪いのかと、思い当たるふしがありません。
悪いところや指摘がございましたらどうか教えてくださいm(_ _)m
また、スクリプト文を作れる方がいましたら作成を頼めませんでしょうか。。。
私の希望する、UWSCの実行は下記のとおりです。また、"neko"は画像ファイル名のことです。
"neko"が画面内にあるか無いかチェックし、もしあれば、Ctrlキーを押したまま、"neko"が見つかった座標に左クリック。
この繰り返し。
投稿日時 - 2006-07-21 01:32:54
5人が「このQ&Aが役に立った」と投票しています
回答(3件中 1~3件目)
(2)メモ帳を開き、下記のとおりにそのまま入力する。ファイル名の語尾に.uwsを付け、(1)の画像と同じフォルダに保存。
のとこでちょと気になったのですが、この場合は画像と同じフォルダでなく、画像が入ったフォルダと同じフォルダにuwsファイルをおいてください。
例えば、 UWSファイルを"サンプル.UWS" と仮定して、"uwsc40d"フォルダに入ってるとすると
uwsc40d --- サンプル.UWS
|
|-- a[フォルダ] --- neko.bmp
こんな感じでしょうか。ちょっとわかり難くてすいません。
"サンプル.UWS" と "aフォルダ" が "uwsc40dフォルダ" のなかに入っているといった感じです。
それでも駄目なら、uwsファイルと画像ファイルを同じフォルダに入れて
IFB CHKIMG("neko.bmp")
としちゃったほうがいいかもしれません。
それと今自分の環境でも試してみたのですが、サンプル.UWSの内容を変更して保存して
UWSCで読み込んでも内容が更新されていない場合がある気がします。
バグか私の操作ミスかはちょっと不明ですが、この場合ファイル名を変えて、サンプル1.UWS などで
再度読み込んで実行するとうまくいきました。
投稿日時 - 2006-07-21 20:44:42
補足
説明されたとおりにフォルダ分けしてみたら、UWSCがちゃんと実行してくれました!!どうもありがとうございますm(_ _)m
やっと大きな山を越えることができました;
しかし、ペイントでの画像しか認識してくれないのですが、ペイントじゃなくても認識させるような事はできませんでしょうか?
UWSCの説明書(下記のとおり)の『透過色/色無視: 0: 指定なし (デフォルト) 1: 左上、2:右上、3:左下、4:右下 の1ピクセルの色を透過色として処理』の部分の意味が特にわかりません;
右下とか左下とかなんなのでしょう?;;
透過処理とかで、ペイント以外のところでも認識させるように設定できそうな気はするのですが・・・。
どうかご教授お願いしますm(_ _)m
↓UWSC説明書↓
// 指定画像が画面上にあるかチェック あればその位置を返す
戻値 = CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2] )
引数
画像名: 画像ファイル名 (BMP形式のみ)
透過色/色無視: 0: 指定なし (デフォルト)
1: 左上、2:右上、3:左下、4:右下 の1ピクセルの色を透過色として処理
-1: 色を無視して形でチェックする
x1, y1, x2, y2: サーチ範囲
戻値
有ればTRUE、無ければFALSE
TRUE の場合は見つかった座標を特殊変数 G_IMG_X、 G_IMG_Y に格納
投稿日時 - 2006-07-21 23:44:22
No.1です。
説明書をみると画像判別の機能があるみたいですね。
私の認識不足でした。
早速使ってみたのですが、
While True
IFB CHKIMG("a/neko.bmp")
MsgBox(G_IMG_X+ "×" + G_IMG_Y)
ENDIF
Sleep(1) // 10秒の間を取る
Wend
これで画面にneko.bmpを表示させるとメッセージボックスが表示されたので
IFB CHKIMG("a/neko.bmp")
MMV(G_IMG_X,G_IMG_Y)
KBD(VK_CTRL,DOWN)
BTN(LEFT,DOWN,G_IMG_X,G_IMG_Y)
KBD(VK_CTRL,UP)
BTN(LEFT,UP,G_IMG_X,G_IMG_Y)
ENDIF
これで大丈夫かと思います。
画像の判別時にペイントで表示した場合には成功しましたが、Windows標準搭載の画像ビューアの場合には
失敗しました。実際に使い場合にはIFB CHKIMGに引数をつけて透過処理などを行ったほうがよさそうです。
投稿日時 - 2006-07-21 14:18:34
補足
回答まことにありがとうございますm(_ _)m
早速、画像判別を実行させてみたのですが、いつものように「エラー NOT Found".\A\neko.bmp"」と出てきてしまいます;;
別の画像で同じように試しても「エラー NOT Found」と出てきました。
全く原因がわからないので、今回、自分のした行為をいちからいちまで書いておきますね;;
何か問題等ございましたらご指摘くださいm(_ _)m
(1)UWSCでチェックさせたい画像をペイントでbmp形式にして保存。
保存できる形式として下記の一覧が出てきましたが、私は「24ビットマップ」で保存しました。(他の種類のビットマップで保存しようとすると「この形式に保存すると色情報の一部が失われる可能性があります」と出るので。)
・モノクロビットマップ
・16色ビットマップ
・256色ビットマップ
・24ビットマップ
・JPEG
・GIF
・TIFF
・PNG
(2)メモ帳を開き、下記のとおりにそのまま入力する。ファイル名の語尾に.uwsを付け、(1)の画像と同じフォルダに保存。
While True
IFB CHKIMG("a/neko.bmp")
MsgBox(G_IMG_X+ "×" + G_IMG_Y)
ENDIF
Sleep(1) // 10秒の間を取る
Wend
(3)UWSCを起動させ、「読み込み」を押し、(2)のスクリプト文のファイルをクリック。UWSC実行させる。
(4)「エラー NOT Found」と出る。
以上です;;
何か悪いところや間違ってる原因等ありませんか?
投稿日時 - 2006-07-21 15:39:36
私のパソコンにもUWSCが入っていたので試してみました。
IFB CHKIMG(".\A\neko.bmp") の部分を
IFB CHKIMG("A/neko.bmp") としたら
どうでしょうか? 私の場合はこれでできました。
しかしこの場合は "noko.bmp" が指定された場所にあれば
IFB を実行するといった形ですので画面内にneko.bmpがあればといった
チェックはしないと思います。
またそのようなチェックはUWSCでは不可能と思われます。
投稿日時 - 2006-07-21 04:44:27
補足
回答ありがとうございますm(_ _)m
UWSCの説明書を見ると、下記のようなことが書かれているのでサーチ範囲を指定しなければ(もしくはサーチ範囲を画面全体に指定)、画面内すべてチェックしてくれるような気がするのですが・・・。
どうなのでしょうか;?
// 指定画像が画面上にあるかチェック あればその位置を返す
戻値 = CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2] )
引数
画像名: 画像ファイル名 (BMP形式のみ)
透過色/色無視: 0: 指定なし (デフォルト)
1: 左上、2:右上、3:左下、4:右下 の1ピクセルの色を透過色として処理
-1: 色を無視して形でチェックする
x1, y1, x2, y2: サーチ範囲
戻値
有ればTRUE、無ければFALSE
TRUE の場合は見つかった座標を特殊変数 G_IMG_X、 G_IMG_Y に格納
私はUWSC初めて間も無く、全然詳しくないのでいろいろとアドバイスを頂けるとうれしいです。
投稿日時 - 2006-07-21 10:15:41