Contents
マウスカーソルを移動します。
- 構文
- MMV( x, y, [ms] )
- 引数
- x, y
- 位置
- ms
- 実行までの待ち時間 (ミリセカンド)
- 戻値
例
-
画像”image.bmp”が見つかったらその場所にカーソルを移動する。
IF CHKIMG("image.bmp",,,,,, -1) THEN MMV(G_IMG_X, G_IMG_Y)
-
円を描く。
DIM a = G_SCREEN_W / 2 DIM b = G_SCREEN_H / 2 DIM r = 100 FOR theta = 0 TO 360 DIM x = a + r * COS(degToRad(theta)) DIM y = b + r * SIN(degToRad(theta)) MMV(x, y) SLEEP(0.001) NEXT ////////////////////////////////////////////////// // 【引数】 // deg : 度数法 // 【戻値】 // 度数法から弧度法に変換した値 ////////////////////////////////////////////////// FUNCTION degToRad(deg) DIM pi = 3.14159265358979 RESULT = deg * pi / 180 FEND
-
見つかった画像の位置をマウスカーソルで示す。
DIM path = "D:\Desktop\quick.bmp" DIM arr = getBitmap(path) DIM num = CHKIMG(path, -1,,,,, -1) FOR n = 0 TO num – 1 PRINT ALL_IMG_X[n] + ", " + ALL_IMG_Y[n] DIM a = ALL_IMG_X[n] + arr[1] / 2 DIM b = ALL_IMG_Y[n] + arr[2] / 2 DIM r = 5 FOR theta = 0 TO 360 STEP 10 DIM x = a + r * COS(degToRad(theta)) DIM y = b + r * SIN(degToRad(theta)) MMV(x, y) SLEEP(0.001) NEXT NEXT ////////////////////////////////////////////////// // 【引数】 // dec : 10進数 // 【戻値】 // 16進数に変換した値 ////////////////////////////////////////////////// FUNCTION decToHex(dec) RESULT = FORMAT(VAL(dec), 0, -1) FEND ////////////////////////////////////////////////// // 【引数】 // deg : 度数法 // 【戻値】 // 度数法から弧度法に変換した値 ////////////////////////////////////////////////// FUNCTION degToRad(deg) DIM pi = 3.14159265358979 RESULT = deg * pi / 180 FEND ////////////////////////////////////////////////// // 【引数】 // str // 【戻値】 // ////////////////////////////////////////////////// FUNCTION Endian(str) DIM len = LENGTH(str) IFB !isEven(len) THEN str = "0" + str len = len + 1 ENDIF DIM res = "" FOR n = 1 TO len STEP 2 res = COPY(str, n, 2) + res NEXT RESULT = res FEND ////////////////////////////////////////////////// // 【引数】 // path : ビットマップ画像のパス // 【戻値】 // 配列。0:サイズ(Byte)、1:幅(px)、2:高さ(px)、3:ビットの深さ(bit) ////////////////////////////////////////////////// FUNCTION getBitmap(path) DIM arr[3] // 戻り値 DIM Stream = CREATEOLEOBJ("ADODB.Stream") Stream.Open() Stream.Type = 1 // adTypeBinary Stream.LoadFromFile(path) DIM tmp = Stream.Read(30) Stream.Close() // BM(0~1) DIM fmt = "" FOR n = 0 TO 1 fmt = fmt + decToHex(tmp[n]) NEXT IFB fmt <> "424D" THEN RESULT = ERR_VALUE EXIT ENDIF // サイズ(2~5) DIM size = "" FOR n = 2 TO 5 size = size + REPLACE(FORMAT(VAL(decToHex(tmp[n])), 2), " ", "0") NEXT arr[0] = hexToDec(Endian(size)) // 幅(18~21) DIM width = "" FOR n = 18 TO 21 width = width + REPLACE(FORMAT(VAL(decToHex(tmp[n])), 2), " ", "0") NEXT arr[1] = hexToDec(Endian(width)) // 高さ(22~25) DIM height = "" FOR n = 22 TO 25 height = height + REPLACE(FORMAT(VAL(decToHex(tmp[n])), 2), " ", "0") NEXT arr[2] = hexToDec(Endian(height)) // ビットの深さ(28~29) DIM bit = "" FOR n = 28 TO 29 bit = bit + REPLACE(FORMAT(VAL(decToHex(tmp[n])), 2), " ", "0") NEXT arr[3] = hexToDec(Endian(bit)) RESULT = SLICE(arr) FEND ////////////////////////////////////////////////// // 【引数】 // hex : 16進数 // 【戻値】 // 10進数に変換した値 ////////////////////////////////////////////////// FUNCTION hexToDec(hex) dec = 0 hex = STRCONV(hex, SC_LOWERCASE) FOR n = 1 TO LENGTH(hex) str = COPY(hex, n, 1) IFB CHKNUM(str) THEN num = str ELSE num = ASC(str) - 87 ENDIF dec = dec + (num * POWER(16, LENGTH(hex) - n)) NEXT RESULT = dec FEND ////////////////////////////////////////////////// // 【引数】 // expr : 評価する式 // truepart : 評価した式がTrueのときに返す値 // falsepart : 評価した式がFalseのときに返す値 // 【戻値】 // truepart : 評価した式がTrueのとき、falsepart : 評価した式がFalseのとき ////////////////////////////////////////////////// FUNCTION IIF(expr, truepart, falsepart) IFB EVAL(expr) THEN RESULT = truepart ELSE RESULT = falsepart ENDIF FEND ////////////////////////////////////////////////// // 【引数】 // 数値 : 整数 // 【戻値】 // True : 偶数、False : 奇数 ////////////////////////////////////////////////// FUNCTION isEven(n) IFB n <> VARTYPE(n, VAR_INTEGER) THEN RESULT = ERR_VALUE EXIT ENDIF RESULT = IIF(n MOD 2 = 0, TRUE, FALSE) FEND
プログラム実行例
アクティブウィンドウの左上にカーソルを移動
DIM ID = GETID(GET_ACTIVE_WIN)
DIM x = STATUS(ID, ST_X)
DIM y = STATUS(ID, ST_Y)
MMV(x, y)
解説
- 1行目
アクティブウィンドウのIDを取得。DIM ID = GETID(GET_ACTIVE_WIN)
- 3行目
アクティブウィンドウのx座標を取得し、変数xに代入。DIM x = STATUS(ID, ST_X)
- 4行目
アクティブウィンドウのy座標を取得し、変数yに代入。DIM y = STATUS(ID, ST_Y)
- 6行目
マウスカーソルを(x, y) = (変数x, 変数y)の位置に移動。MMV(x, y)
マウスカーソルをランダムな位置に移動
DIM x = G_SCREEN_W
DIM y = G_SCREEN_H
MMV(RANDOM(x), RANDOM(y))
マウスカーソル下のウィンドウの左上の座標に移動する
MOUSEORG(GETID(GET_FROMPOINT_WIN))
MMV(0, 0)
この記事は役に立ちましたか?