• ベストアンサー

UWSC「画像が無い場合」

UWSCについての質問です 指定の画像がある場合、スクリプトを実行させるというのは分かりますが 逆に、画像が無い場合にのみ、特定のスクリプトを実行させるという事は可能でしょうか? 具体例としては 指定の画像がある場合は何もせず 指定の画像が消えた場合 msgbox("画像が消えました") とメッセージボックスを表示させる よろしくお願い致します

質問者が選んだベストアンサー

  • ベストアンサー
noname#194317
noname#194317
回答No.1

こうすればできます。簡単でしょ? If ChkImg("探したい画像.bmp")=FALSE Then MsgBox("ないっぽいですぅ") ただし、初めからなかった場合もこれで引っかかってしまうので、一度表示されてから消えたというのを検出したければ、次のようにする必要があります。 //初期化 あった=FALSE //画像探しのループ //目的の画像が一度見つかってそれが消えるまで回り続ける Whlie TURE   //他にやりたい処理があるならここに書く   //画像の判定   If ChkImg("探したい画像.bmp") Then あった=TRUE   Ifb あった AND ChkImg("探したい画像.bmp")=FALSE     MsgBox("消えたみたいですぅ")     あった=FALSE   EndIf Wend ついでに言うと、If文はTRUEかFALSEかを判定する文であり、関数だろうが式だろうが、判定できるのはTRUEかFALSEだけです。しかし逆を言うと、ChkImg関数のように結果がTRUEかFALSEで返る関数であれば、=TRUEなどといちいち書く必要はありません。なのでUWSCのサンプルでは、TRUEかFALSEを返す関数がIf文内にある場合、=TRUEという表記を省略しています。その方がスクリプトの見た目が簡潔にできますから。なのでサンプルがもしこれを省略していなかったら、この質問をする前に気付いていたでしょうね。

sky7770
質問者

お礼

ChkImg関数について詳しく理解できてなかったみたいです。 画像があった場合TRUE、無かった場合FALSEを返すと言うのを見落としておりました。 While ChkImg("Check.bmp") Wend 以下画像が消えてからの処理 とすることで上手く動作してくれました。 回答者様の例も、とても参考になりました。 今後活用できそうな機会もありそうです。 ありがとうございました。