モジュールとサンプルスクリプト
#module _Happy_Module_
#uselib "User32.dll"
#func _GetKeyboardState "GetKeyboardState" var
#func _keybd_event "keybd_event" int,int,int,int
//-------------------------------------------------
// val = NUMKEY_STATE()
// NUMLOCK の状態を val に返します。 0 = OFF / 1 = ON
//-------------------------------------------------
#defcfunc NUMKEY_STATE
sdim GetKeyData,256
_GetKeyboardState GetKeyData
return peek(GetKeyData,0x90)&127
//-------------------------------------------------
// NUMKEY_SET p1
// p1 の数値でNUMLOCK の状態を設定します。
// 0 = OFF / 1 = ON
//-------------------------------------------------
#deffunc NUMKEY_SET int p1
if (NUMKEY_STATE() = 1)&&(p1 = 0){
_keybd_event 0x90,0,0,0 : await 0
_keybd_event 0x90,0,2,0 : await 0
}
if (NUMKEY_STATE() = 0)&&(p1 = 1){
_keybd_event 0x90,0,0,0 : await 0
_keybd_event 0x90,0,2,0 : await 0
}
return
#global
//以下サンプル
screen 0,800,600,0
NumCheck = NUMKEY_STATE()
if NumCheck = 0{
mes "NUMLOCK は機能していません"
} else {
mes "NUMLOCK は機能しています"
}
if NumCheck = 0{
dialog "NUMLOCK は機能していません。強制的に ON にしますか?",2,"かくにん"
if stat = 6{
NUMKEY_SET 1
if NUMKEY_STATE() = 1 : mes "NUMLOCK を強制的に ON にしました。"
}
}