マウスやキーボードの入力状態を取得する方法

マウスやキーボードの入力状態を取得するにはGETKEYSTATE関数を利用します。

 

マウスやキーボードの入力状態を取得するサンプル

PRINT "ESCキーで終了します"
WHILE !GETKEYSTATE(VK_ESC)
 SLEEP(0.1)
WEND

 

日本語入力がONになっている場合、OFFにするサンプル

IF GETKEYSTATE(TGL_IME) THEN KBD(VK_KANJI, CLICK)

 

GETKEYSTATE関数リファレンス

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

戻値 = GETKEYSTATE( キーコード )
引数
 キーコード: 状態を知りたいキーコード
戻値
 TRUE:クリックがあった、 FALSE:なし

 ※マウスクリック VK_RBUTTON (右)、VK_LBUTTON(左)、VK_MBUTTON(中)
 ※トグルキー状態 TGL_IME (IME)、TGL_NUMLOCK (NumLock)、TGL_CAPSLOCK(CapsLock) 
          TGL_SCROLLLOCK (ScrollLock)、TGL_KANALOCK(カタカナ)

 

仮想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

 

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

キーボード入力は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: 実行までの待ち時間 (ミリセカンド)