SetWindowsHookExを利用する方法。
実行後3秒間はEscとQを入力しても反応しない。
;
; ちょくと氏のhscallbk.dllが必要
;
; http://yokohama.cool.ne.jp/chokuto/
;
#include "user32.as"
#include "hscallbk.as"
#uselib ""
#func proto_HookProc "" int, int, int
#define WH_KEYBOARD $00000002
#define VK_ESCAPE $0000001B
onkey gosub *keydown
setcallbk pHookProc, proto_HookProc, *HookProc
mes "フック開始"
GetWindowThreadProcessId hwnd, 0
SetWindowsHookEx WH_KEYBOARD, varptr(pHookProc), hinstance, stat
hHook = stat
repeat 300
wait 1
loop
UnhookWindowsHookEx hHook
mes "フック終了"
stop
*HookProc
nCode = callbkarg(0)
wp = callbkarg(1)
if nCode < 0 {
CallNextHookEx hHook, nCode, wp, callbkarg(2)
return stat
} else {
switch wp
case VK_ESCAPE
case 'Q'
retval = 1
swbreak
default
CallNextHookEx hHook, nCode, wp, callbkarg(2)
retval = stat
swend
}
return retval
*keydown
title "" + iparam
return
フックプロシージャ(*HookProc)でwParamを調べ、無効にしたいキーコードだったらTRUEを返す。