HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0515
Akiraキーの無効化1未解決


Akira

リンク

2006/5/15(Mon) 21:35:50|NO.746

ESCやQなどの一部のキーを無効化したいのですが、
WindowsAPIを見てもよくわかりません><
SetWindowsHookExを使うとできるようなのですが、
どうやったらできるのでしょうか??



この記事に返信する


Steep

リンク

2006/5/15(Mon) 23:40:37|NO.749

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を返す。



ONION software Copyright 1997-2023(c) All rights reserved.