UWSCで複数画像を待機する方法


はじめに

自動処理のシナリオを組む時、次に出現する画像によって、処理を変えたいって事ありますよね。
そんな時に便利な関数を紹介します。
この関数は複数の画像名称を配列で渡し、いずれかを発見したら見つかった画像のインデックスを返却する関数です。

関数定義

以下が複数画像を待機する関数です。

MODULE Image
Function WaitMulti(imageNames[], SleepTime=0.5)
While TRUE
FOR i = 0 TO LENGTH(imageNames) - 1
IFB CHKIMG(imageNames[i] + ".bmp")
RESULT = i
EXIT
ENDIF
NEXT
SLEEP(SleepTime)
WEND
Fend
ENDMODULE

使い方

画像のパスの配列を用意してあげて、戻ってきた値が見つけた画像のインデックスになります。

Dim imageNames = "image1", "image2", "image3"
Dim result
result = Image.WaitMulti(imageNames)
PRINT imageNames[result] // 見つかった画像の名称がわかる