#==============================================================================
# 本脚本来自[url]http://tyrpg.5d6d.com/[/url],使用和转载请保留此信息
#==============================================================================
#==============================================================================
# ■ Keyboard Script
#------------------------------------------------------------------------------
# 全键盘按键调用脚本 By: 夏娜 完善:RPG-XP
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 使用方法见发布页
#==============================================================================
module Kboard
#----------------------------------------------------------------------------
# ● 设置所需按键,以下是全键盘按键列表。
#----------------------------------------------------------------------------
$BACK = 0x08 # ← BACKSPACE 按键
$TAB = 0x09 # TAB 按键
$RETURN = 0x0D # 回车键
$SHIFT = 0x10 # SHIFT 按键
$CTLR = 0x11 # Ctrl 按键
$ALT = 0x12 # ALT 按键
$PAUSE = 0x13 # Pause Break 按键
$CAPITAL = 0x14 # 大写/小写 转换键
$ESCAPE = 0x1B # ESC 按键
$SPACE = 0x20 # 空格键
$PRIOR = 0x21 # PAGE UP 按键
$NEXT = 0x22 # PAGE DOWN 按键
$ENDKEY = 0x23 # END 按键
$HOME = 0x24 # HOME 按键
$LEFT = 0x25 # ← 按键
$UP = 0x26 # → 按键
$RIGHT = 0x27 # ↑ 按键
$DOWN = 0x28 # ↓ 按键
$SELECT = 0x29 # select 按键(这是……)
$PRINT = 0x2A # PRINT 按键
$SNAPSHOT = 0x2C # PRINT SCREEN 按键
$INSERT = 0x2D # Insert 按键
$DELETE = 0x2E # Delete 按键
$Key_0 = 0x30 # 左边数字面板的数字 0 按键
$Key_1 = 0x31 # 左边数字面板的数字 1 按键
$Key_2 = 0x32 # 左边数字面板的数字 2 按键
$Key_3 = 0x33 # 左边数字面板的数字 3 按键
$Key_4 = 0x34 # 左边数字面板的数字 4 按键
$Key_5 = 0x35 # 左边数字面板的数字 5 按键
$Key_6 = 0x36 # 左边数字面板的数字 6 按键
$Key_7 = 0x37 # 左边数字面板的数字 7 按键
$Key_8 = 0x38 # 左边数字面板的数字 8 按键
$Key_9 = 0x39 # 左边数字面板的数字 9 按键
$A = 0x41 # 字母 A 按键
$B = 0x42 # 字母 B 按键
$C = 0x43 # 字母 C 按键
$D = 0x44 # 字母 D 按键
$E = 0x45 # 字母 E 按键
$F = 0x46 # 字母 F 按键
$G = 0x47 # 字母 G 按键
$H = 0x48 # 字母 H 按键
$I = 0x49 # 字母 I 按键
$J = 0x4A # 字母 J 按键
$K = 0x4B # 字母 K 按键
$L = 0x4C # 字母 L 按键
$M = 0x4D # 字母 M 按键
$N = 0x4E # 字母 N 按键
$O = 0x4F # 字母 O 按键
$P = 0x50 # 字母 P 按键
$Q = 0x51 # 字母 Q 按键
$R = 0x52 # 字母 R 按键
$S = 0x53 # 字母 S 按键
$T = 0x54 # 字母 T 按键
$U = 0x55 # 字母 U 按键
$V = 0x56 # 字母 V 按键
$W = 0x57 # 字母 W 按键
$X = 0x58 # 字母 X 按键
$Y = 0x59 # 字母 Y 按键
$Z = 0x5A # 字母 Z 按键
$LWIN = 0x5B # 左边开始界面视窗按键(微软自然键盘)
$RWIN = 0x5C # 右边开始界面视窗按键(微软自然键盘)
$APPS = 0x5D # (自然键盘)这个键的称呼我不知道,但它如同于鼠标右键。
$Key_NUMPAD0 = 0x60 # 右边数字面板的数字 0 按键
$Key_NUMPAD1 = 0x61 # 右边数字面板的数字 1 按键
$Key_NUMPAD2 = 0x62 # 右边数字面板的数字 2 按键
$Key_NUMPAD3 = 0x63 # 右边数字面板的数字 3 按键
$Key_NUMPAD4 = 0x64 # 右边数字面板的数字 4 按键
$Key_NUMPAD5 = 0x65 # 右边数字面板的数字 5 按键
$Key_NUMPAD6 = 0x66 # 右边数字面板的数字 6 按键
$Key_NUMPAD7 = 0x67 # 右边数字面板的数字 7 按键
$Key_NUMPAD8 = 0x68 # 右边数字面板的数字 8 按键
$Key_NUMPAD9 = 0x69 # 右边数字面板的数字 9 按键
$Key_MULTIPLY = 0x6A # 乘号按键
$ADD = 0x6B # 加号按键
$SEPARATOR = 0x6C # Separator 按键
$SUBTRACT = 0x6D # 减号按键
$DECIMAL = 0x6E # Decimal 按键
$DIVIDE = 0x6F # 除号按键
$F1 = 0x70 # F1 按键
$F2 = 0x71 # F2 按键
$F3 = 0x72 # F3 按键
$F4 = 0x73 # F4 按键
$F5 = 0x74 # F5 按键
$F6 = 0x75 # F6 按键
$F7 = 0x76 # F7 按键
$F8 = 0x77 # F8 按键
$F9 = 0x78 # F9 按键
$F10 = 0x79 # F10 按键
$F11 = 0x7A # F11 按键
$F12 = 0x7B # F12 按键
$NUMLOCK = 0x90 # NUM LOCK 按键
$SCROLL = 0x91 # SCROLL LOCK 按键
$LSHIFT = 0xA0 # 左边SHIFT按键
$RSHIFT = 0xA1 # 右边SHIFT按键
$LCONTROL = 0xA2 # 左边 CONTROL 按键
$RCONTROL = 0xA3 # 右边 CONTROL 按键
$L_ALT = 0xA4 # 左边 ALT 按键
$R_ALT = 0xA5 # 右边 ALT 按键
$SEP = 0xBC # 逗号按键
$DASH = 0xBD # 减号按键
$DOTT = 0xBE # . 按键
#--------------------------------------------------------------------------
module_function
@R_Key_Hash = {}
@R_Key_Repeat = {}
GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
def press?(rkey)
return GetKeyState.call(rkey) != 0
end
def repeat?(rkey)
result = GetKeyState.call(rkey)
if result != 0
if @R_Key_Repeat[rkey].nil?
@R_Key_Repeat[rkey] = 0
return true
end
@R_Key_Repeat[rkey] += 1
else
@R_Key_Repeat[rkey] = nil
@R_Key_Hash[rkey] = 0
end
if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
@R_Key_Repeat[rkey] = 0
return true
else
return false
end
end
def trigger?(rkey)
result = GetKeyState.call(rkey)
if @R_Key_Hash[rkey] == 1 and result != 0
return false
end
if result != 0
@R_Key_Hash[rkey] = 1
return true
else
@R_Key_Hash[rkey] = 0
return false
end
end
end
#==============================================================================
# 本脚本来自[url]http://tyrpg.5d6d.com/[/url],使用和转载请保留此信息
#==============================================================================