キーボード入力をさせる方法

キーボード入力はKBD関数を利用することで任意のキー操作を行えます。

1回に1キーずつ操作するので一気に文字列を入力させるようなことはできません。

キーを押したり離したりといった動作を指定できるので、Alt + F4のような動作も命令を組み合わせることで可能です。

 

キーボード入力をさせるサンプル

KBD(VK_A) // Aのキーをクリック

 

キーボードからAlt + F4を入力させるサンプル

ウェイトを入れないと動作が安定しない可能性があるので100ミリ秒のウェイトを入れてみました。

アクティブなウィンドウが閉じてしまうので注意してください。
UWSCのウィンドウがアクティブならスクリプトが終了します。

KBD(VK_ALT, DOWN) // Altのキーを押しっぱなしにする
KBD(VK_F4, CLICK, 100) // F4のキーをクリック
KBD(VK_ALT, UP, 100)  // Altのキーを離す

 

KBD関数リファレンス

KBD関数のリファレンスをマニュアルから転載します。

KBD( 仮想KEY, [状態, ms] )
引数
 仮想KEY: 仮想KEYコード、もしくはUNICODE
 状態:CLICK(0:デフォルト), DOWN(1), UP(2)
 ms: 実行までの待ち時間 (ミリセカンド)

 

仮想KEYコードリファレンス

仮想KEYコードをマニュアルから転載します。

VK_START
VK_WIN
VK_ALT
VK_CTRL
VK_RCTRL
VK_ESC
VK_BACK    // BackSpace
VK_TAB
VK_CLEAR
VK_RETURN   // Enter
VK_RRETURN  // 右Enter
VK_SHIFT
VK_RSHIFT
VK_CONTROL
VK_MENU
VK_PAUSE
VK_CAPITAL  // CapsLock
VK_KANA
VK_FINAL
VK_KANJI
VK_CONVERT    // 変換
VK_NONCONVERT  // 無変換
VK_ACCEPT
VK_MODECHANGE
VK_ESCAPE
VK_SPACE
VK_PRIOR  // PageUp
VK_NEXT   // PageDown
VK_END
VK_HOME
VK_LEFT   // カーソル
VK_UP
VK_RIGHT
VK_DOWN
VK_SELECT
VK_PRINT
VK_EXECUTE
VK_SNAPSHOT  // PrintScreen
VK_INSERT
VK_DELETE
VK_HELP
VK_APPS    // コンテキストメニュ
VK_MULTIPLY  // *
VK_ADD     // +
VK_SEPARATOR
VK_SUBTRACT  // -
VK_DECIMAL
VK_DIVIDE   // /
VK_NUMPAD0 ~ 9
VK_F1 ~ VK_F12
VK_NUMLOCK
VK_SCROLL   // ScrollLock
VK_SLEEP
// 以下Win2000/XP
VK_BROWSER_BACK   // ブラウザ制御
VK_BROWSER_FORWARD
VK_BROWSER_REFRESH
VK_BROWSER_STOP
VK_BROWSER_SEARCH
VK_BROWSER_FAVORITES
VK_BROWSER_HOME
VK_VOLUME_MUTE    // 音量制御
VK_VOLUME_DOWN
VK_VOLUME_UP
VK_MEDIA_NEXT_TRACK  // メディア制御
VK_MEDIA_PREV_TRACK
VK_MEDIA_STOP
VK_MEDIA_PLAY_PAUSE
VK_LAUNCH_MEDIA_SELECT
VK_LAUNCH_MAIL   // メーラ起動
VK_LAUNCH_APP1   // アプリ起動
VK_LAUNCH_APP2
VK_OEM_PLUS
VK_OEM_COMMA
VK_OEM_MINUS
VK_OEM_PERIOD
VK_OEM_1 ~ 8
VK_OEM_RESET
VK_OEM_JUMP
VK_OEM_PA1 ~ 3

 

マウスをクリックさせる方法

マウスをクリックさせるにはBTN関数を使います。

BTN関数はマウスの左ボタンクリック、右ボタンクリック、ホイールクリック、ホイール回転の動作をさせることができます。

また、ボタンを押しっぱなしにするといった指定もできます。この場合はボタンを離す動作も忘れずに指定しましょう。

マウスをクリックさせるサンプル

BTN(LEFT, CLICK)

 

マウスホイールを回転させるサンプル

引数の数値がプラスかマイナスかでホイールの回転方向が変わります。

BTN(WHEEL, -10)

 

BTN関数リファレンス

BTN関数のリファレンスをマニュアルから転載します。

BTN( ボタン, 状態, [x, y, ms] )
引数
 ボタン:LEFT, RIGHT, MIDDLE, WHEEL(ホイール回転)
 状態:CLICK(0), DOWN(1), UP(2)  WHEEL指定時はノッチ数
 x, y: 位置 (省略時は現在位置にて) 
 ms: 実行までの待ち時間 (ミリセカンド)

 

マウスカーソルを移動させる方法

マウスカーソルを移動させる場合はMMV関数を利用します。

普通に人間が操作すればマウスカーソルも順次移動していきますが、自動で操作させる場合はいきなり目標地点に移動させることができます。

自動化させると早すぎて処理が追いつかない場合もあるので多少余裕を持たせて動作させましょう。

動作にウェイトを入れるにはSLEEP関数を利用するかMMV関数の引数で実行までの待ち時間を利用しましょう。

 

マウスカーソルを移動させるサンプル

マウスカーソルを画面の中央に移動させます。

x = G_SCREEN_W / 2 // 画面の幅の半分
y = G_SCREEN_H / 2 // 画面の高さの半分
MMV(x, y)

 

MMV関数リファレンス

MMV関数のリファレンスをマニュアルから転載します。

MMV( x, y, [ms] )
引数
 x, y: 位置 
 ms: 実行までの待ち時間 (ミリセカンド)

 

ランダムな数値を取得する方法

ランダムな数値を取得する場合はRANDOM関数を利用します。

RANDOM関数は0から引数で指定した数値より1少ない範囲でランダムな整数を返します。 例えば10を指定すれば0~9の値が返ってきます。

 

ランダムな数値を取得するサンプル

r = RANDOM(10) // 0から9までの値を取得

 

ランダムな数値に定数を加算するサンプル

10から19の範囲を取得したい場合はRANDOM関数で取得した数値に10を加算します。これはRANDOM関数が0から始まる数値しか取得できないためです。

r = RANDOM(10) + 10 // 10から19までの値を取得

 

RANDOM関数リファレンス

RANDOM関数のリファレンスをマニュアルから転載します。

RANDOM(Range)      // 0 <=X <Range の範囲にある乱数を返す

 

文字列を数値に変換する方法

文字列を数値に変換させたい場合はVAL関数を利用します。

文字列が数値に変換できるか事前にCHKNUM関数を利用してチェックしたほうが安全です。

 

文字列を数値に変換するサンプル

before = "0123"  // 文字列として数値を設定
PRINT before  // 試しに出力させてみる

after = VAL(before) // 数値に変換したものを変数に代入する
PRINT after   // 数値に変換したものを出力させる

after = after + 1 // 数値に変換されたことを確認するために計算させてみる
PRINT after   // 結果が124なら成功

文字列を数値に変換する方法実行結果

 

VAL関数リファレンス

VAL関数のリファレンスをマニュアルから転載します。

戻値 = VAL( 文字列, [エラー値] )
引数
 文字列: 数値に変える文字列
 エラー値: 数値に変換できない場合に返す値
戻値
 数値
 数値変換できない場合はエラー値を、デフォルトでは ERR_VALUE (-999999)を返す