質問の趣旨からして、aplkey系は向かないと思います。
そこで、mouse_event関数の解説付きサンプルをば。
#uselib "user32.dll"
#func mouse_event "mouse_event" int, int, int, int, int
////////mouse_event関数/////////
;マウスの移動やマウスボタンのクリックを合成する。
;これを使えばプログラムからマウスの動作を行うことができる。
;第一パラメータ: マウスの動作を指定する。意味のある組み合わせでなければならない。以下の値を指定できる。
#define MOUSEEVENTF_ABSOLUTE $00008000 ;これを指定すると第二、第三パラメータを絶対座標で指定できる
#define MOUSEEVENTF_MOVE $00000001 ;マウスカーソルが移動した
#define MOUSEEVENTF_LEFTDOWN $00000002 ;左ボタンが押された
#define MOUSEEVENTF_LEFTUP $00000004 ;左ボタンが離された
#define MOUSEEVENTF_RIGHTDOWN $00000008 ;右ボタンが押された
#define MOUSEEVENTF_RIGHTUP $00000010 ;右ボタンが離された
#define MOUSEEVENTF_MIDDLEDOWN $00000020 ;中央ボタンが押された
#define MOUSEEVENTF_MIDDLEUP $00000040 ;中央ボタンが離された
#define MOUSEEVENTF_WHEEL $00000800 ;マウスホイールが回された
#define MOUSEEVENTF_XDOWN $00000080 ;xボタンが押された
#define MOUSEEVENTF_XUP $00000100 ;xボタンが離された
;第二パラメータ: MOUSEEVENTF_MOVE時のx方向移動量。
;第三パラメータ: MOUSEEVENTF_MOVE時のy方向移動量。
;第四パラメータ: MOUSEEVENTF_WHEEL時のホイール回転量。一回のホイールクリックは120になる。
; また、MOUSEEVENTF_XDOWNおよびMOUSEEVENTF_XUPを指定した場合はxボタンを指定する。
#define XBUTTON1 $00000001 ;最初のxボタンが押されたor離された
#define XBUTTON2 $00000002 ;二番目のxボタンが押されたor離された
;第五パラメータ: マウスイベントに関連付けられた 32 ビットの追加情報を指定する。
; GetMessageExtraInfo関数を呼び出すとこの値を取得できる。
; しかし、SetMessageExtraInfo関数を使わない限り0なので、普段は0でよい。
////////////////////////////////
;#cfunc GetMessageExtraInfo "GetMessageExtraInfo"
//////////以下サンプル//////////
flag = 0 ;この変数を使って、スペースキーが押された瞬間と離された瞬間を感知する。
repeat
mx = 0 ;x移動量をリセット。
my = 0 ;y移動量をリセット。
stick key, 31, 0 ;第二パラメータを指定して押され続けている間も検出。第三パラメータに0を指定して非アクティブ時も検出。
if key&1 : mx -= 5 ;←キーでx移動量を減らす。
if key&2 : my -= 5 ;↑キーでy移動量を減らす。
if key&4 : mx += 5 ;→キーでx移動量を増やす。
if key&8 : my += 5 ;↓キーでy移動量を増やす。
mouse_event MOUSEEVENTF_MOVE, mx, my, 0, 0 ;マウスカーソル移動。
if key&16 { ;スペースキーが押されているとき
if flag = 0 { ;スペースキーが押された瞬間
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 ;左ボタン押す。
flag = 1
}
} else { ;スペースキーが押されていないとき
if flag = 1 { ;スペースキーが離された瞬間
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ;左ボタン離す。
flag = 0
}
}
wait 1
loop
//////////////追記//////////////
;自分のウィンドウおよびデバッグウィンドウのタイトルバーや最小化・最大化ボタン、閉じるボタンなどを
;このスクリプトで「クリック」する(つまりスペースキーを押す)と、スクリプトの実行が中断されてしまう。
;この場合、MOUSEEVENTF_LEFTDOWNは送信されているが、MOUSEEVENTF_LEFTUPは送信されていないので、
;左ボタンが押しっぱなしの状態になる。
;そうなったときはマウスで一度クリックしてやると復帰する。
MSDNによれば、mouse_event関数は
>この関数は、SendInput関数にとって代わられました。
らしいですが、このほうがわかりやすいので。