最初から用意されているものとして、aplkeyというのがあります。
これは任意のウィンドウ(aplselで指定する)にキーを送るタイプです。
sample\hspext の中にサンプルがあります。
他は自分で関数を用意する必要があります。
以下は、エンターキーを押す命令を作る例です。
#module
#include "user32.as"
#define VK_RETURN 0x0D
#define INPUT_KEYBOARD 1
#define KEYEVENTF_KEYUP 0x0002
#define KEYEVENTF_SCANCODE 0x0008
// WSH
#deffunc pushEnter1
newcom WScriptShell, "WScript.Shell"
WScriptShell->"SendKeys" "{ENTER}"
delcom WScriptShell
return
// SendInput
#deffunc pushEnter2
int_size = 4
input_length = 7
input_size = input_length * int_size
input_count = 2
MapVirtualKey VK_RETURN, 0
scancode = stat
dim INPUT_KEYBDINPUT, input_length * input_count
dupptr INPUT_1, varptr(INPUT_KEYBDINPUT), input_size, vartype("int")
dupptr INPUT_2, varptr(INPUT_KEYBDINPUT) + input_size, input_size, vartype("int")
INPUT_1(0) = INPUT_KEYBOARD
INPUT_1(1) = scancode << 16
INPUT_1(2) = KEYEVENTF_SCANCODE
INPUT_2(0) = INPUT_KEYBOARD
INPUT_2(1) = scancode << 16
INPUT_2(2) = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP
SendInput input_count, varptr(INPUT_KEYBDINPUT), input_size
return
// keybd_event
#deffunc pushEnter3
keybd_event VK_RETURN, 0, 0, 0
keybd_event VK_RETURN, 0, KEYEVENTF_KEYUP, 0
return
#global
*START
cls
a = 3
mes str(a) + "秒後にエンターを1回だけ押すよ!"
objsize 300, 100
button "WScript.Shell を利用するよ!", *ENTER
button "SendInput を利用するよ!", *ENTER
button "keybd_event を利用するよ!", *ENTER
stop
*ENTER
b = stat
await 1
repeat a
mes "あと" + (a - cnt) + "秒"
await 1000
loop
if(b == 0) : pushEnter1
if(b == 1) : pushEnter2
if(b == 2) : pushEnter3
goto *START
エンター以外に利用するには上のスクリプトを改造するか、
keybd_eventは、llmod3の中にラッパーが入っているので使用してください。
他にも色々な人がサンプルを作っていると思いますので利用してみて下さい。
http://www.placeark.com/program_hsp_module_file/MODULE_input.hsp
http://www.placeark.com/program_hsp_sample_file/sample_module_setkey.hsp
http://www.google.co.jp/webhp?hl=ja&tab=ww#hl=ja&q=%E8%87%AA%E5%8B%95%E3%80%80%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%80%80HSP