查看: 1963|回复: 3

[已经过期] xp的全按键调用脚本为什么用不起来?

[复制链接]
梦石
0
星屑
50
在线时间
17 小时
注册时间
2013-10-5
回帖
4
发表于 2014-6-5 22:00:54 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
脚本如下:#==============================================================================
# 本脚本来自http://tyrpg.5d6d.com/,使用和转载请保留此信息
#==============================================================================
#==============================================================================
# ■ 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

但是在条件分歧里用脚本分事件的时候,就发生了syntaxerror。
这是怎么回事?

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-6-6 19:20:16 | 显示全部楼层
正确调用方式举例:
[pre lang="ruby" line="1"]
Kboard.trigger?($J)
[/pre]

评分

参与人数 1星屑 +66 收起 理由
天地有正气 + 66 感谢回答

查看全部评分

回复

使用道具 举报

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
回帖
1643

开拓者

发表于 2014-6-7 08:45:58 | 显示全部楼层
以下内容来自外站(注释我自己翻译的)仅供参考
[pre lang="ruby" line="1"]#==============================================================================
# ■ Input
#------------------------------------------------------------------------------
#  处理游戏手柄和键盘输入信息的模块。
#==============================================================================
module Input
  DOWN=2
  LEFT=4
  RIGHT=6
  UP=8
  A=11
  B=12
  C=13
  X=14
  Y=15
  Z=16
  L=17
  R=18
  SHIFT=21
  CTRL=22
  ALT=23
  F5=25
  F6=26
  F7=27
  F8=28
  F9=29
  #--------------------------------------------------------------------------
  # GetAsyncKeyState or GetKeyState will work here
  #--------------------------------------------------------------------------
  @GetKeyState=Win32API.new("user32", "GetAsyncKeyState", "i", "i")
  #--------------------------------------------------------------------------
  # Returns whether a key is being pressed
  #--------------------------------------------------------------------------
  def self.getstate(key)
    return (@GetKeyState.call(key)&0x8000)>0
  end
  def self.update
    if @keystate
      for i in 0...256
        @newstate=self.getstate(i)
        @triggerstate=(@newstate&&@keystate==0)
        @releasestate=(!@newstate&&@keystate>0)
        @keystate=@newstate ? @keystate+1 : 0
      end   
    else
      @keystate=[]
      @triggerstate=[]
      @releasestate=[]
      for i in 0...256
        @keystate=self.getstate(i) ? 1 : 0
        @triggerstate=false
        @releasestate=false
      end
    end
  end
  def self.buttonToKey(button)
   case button
    when Input::DOWN
     return [0x28] # Down
    when Input::LEFT
     return [0x25] # Left
    when Input::RIGHT
     return [0x27] # Right
    when Input::UP
     return [0x26] # Up
    when Input::A
     return [0x5A,0x10] # Z, Shift
    when Input::B
     return [0x58,0x1B] # X, ESC
    when Input::C
     return [0x43,0x0d,0x20] # C, ENTER, Space
    when Input::X
     return [0x41] # A
    when Input::Y
     return [0x53] # S
    when Input::Z
     return [0x44] # D
    when Input::L
     return [0x51,0x21] # Q, Page Up
    when Input::R
     return [0x57,0x22] # W, Page Up
    when Input::SHIFT
     return [0x10] # Shift
    when Input::CTRL
     return [0x11] # Ctrl
    when Input::ALT
     return [0x12] # Alt
    when Input::F5
     return [0x74] # F5
    when Input::F6
     return [0x75] # F6
    when Input::F7
     return [0x76] # F7
    when Input::F8
     return [0x77] # F8
    when Input::F9
     return [0x78] # F9
    else
     # ★ 参数为整型时使用自定义的按键 ★
     if button.is_a? Integer then return [button] end
     return []
   end
  end
  def self.dir4
    button=0
    repeatcount=0
    if self.press?(Input::DOWN) && self.press?(Input::UP)
      return 0
    end
    if self.press?(Input::LEFT) && self.press?(Input::RIGHT)
      return 0
    end
    for b in [Input::DOWN,Input::LEFT,Input::RIGHT,Input::UP]
     rc=self.count(b)
     if rc>0
      if repeatcount==0 || rc<repeatcount
       button=b
       repeatcount=rc
      end
     end
    end
    return button
  end
  def self.dir8
    buttons=[]
    for b in [Input::DOWN,Input::LEFT,Input::RIGHT,Input::UP]
     rc=self.count(b)
     if rc>0
      buttons.push([b,rc])
     end
    end
    if buttons.length==0
     return 0
    elsif buttons.length==1
     return buttons[0][0]
    elsif buttons.length==2
     #-----------------------------------------------------------------------
     # since buttons sorted by button, no need to sort here
     #-----------------------------------------------------------------------
     if (buttons[0][0]==Input::DOWN && buttons[1][0]==Input::UP)
      return 0
     end
     if (buttons[0][0]==Input::LEFT && buttons[1][0]==Input::RIGHT)
      return 0
     end
    end
    buttons.sort!{|a,b| a[1]<=>b[1]}
    updown=0
    leftright=0
    for b in buttons
     if updown==0 && (b[0]==Input::UP || b[0]==Input::DOWN)
      updown=b[0]
     end
     if leftright==0 && (b[0]==Input::LEFT || b[0]==Input::RIGHT)
      leftright=b[0]
     end
    end
    if updown==Input::DOWN
     return 1 if leftright==Input::LEFT
     return 3 if leftright==Input::RIGHT
     return 2
    elsif updown==Input::UP
     return 7 if leftright==Input::LEFT
     return 9 if leftright==Input::RIGHT
     return 8
    else
     return 4 if leftright==Input::LEFT
     return 6 if leftright==Input::RIGHT
     return 0
    end
  end
  #--------------------------------------------------------------------------
  # ● 按住(repeat)某键时记数
  #--------------------------------------------------------------------------
  def self.count(button)
   for btn in self.buttonToKey(button)
     c=self.repeatcount(btn)
     return c if c>0
   end
   return 0
  end
  #--------------------------------------------------------------------------
  # ● 判断抬起
  #--------------------------------------------------------------------------
  def self.trigger?(button)
   return self.buttonToKey(button).any? {|item| self.triggerex?(item) }
  end
  #--------------------------------------------------------------------------
  # ● 判断按住
  #--------------------------------------------------------------------------
  def self.repeat?(button)
   return self.buttonToKey(button).any? {|item| self.repeatex?(item) }
  end
  #--------------------------------------------------------------------------
  # ● 判断按下
  #--------------------------------------------------------------------------
  def self.press?(button)
   return self.count(button)>0
  end
  #--------------------------------------------------------------------------
  # ● 记数大于20时判定为按住
  #--------------------------------------------------------------------------
  def self.repeatex?(key)
    return false if !@keystate
    return @keystate[key]==1 || (@keystate[key]>20 && (@keystate[key]&1)==0)
  end
  #--------------------------------------------------------------------------
  # ● 抬起后释放
  #--------------------------------------------------------------------------
  def self.releaseex?(key)
    return false if !@releasestate
    return @releasestate[key]
  end
  #--------------------------------------------------------------------------
  # ● 按下瞬间
  #--------------------------------------------------------------------------
  def self.triggerex?(key)
    return false if !@triggerstate
    return @triggerstate[key]
  end
  #--------------------------------------------------------------------------
  # ● 按住(repeat)某键时记数
  #--------------------------------------------------------------------------
  def self.repeatcount(key)
    return 0 if !@keystate
    return @keystate[key]
  end
  #--------------------------------------------------------------------------
  # ● 记数大于0时判定为按下
  #--------------------------------------------------------------------------
  def self.pressex?(key)
    return self.repeatcount(key)>0
  end
end[/pre]

评分

参与人数 1星屑 +77 收起 理由
天地有正气 + 77 感谢回答

查看全部评分


  -fk: -azogi:
回复

使用道具 举报

梦石
0
星屑
50
在线时间
55 小时
注册时间
2014-5-12
回帖
47
发表于 2014-6-7 13:20:34 | 显示全部楼层
本帖最后由 2492537670@qq.c 于 2014-6-7 13:45 编辑
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. #============================================================================
  5. # ■ Keyboard Script
  6. #----------------------------------------------------------------------------
  7. #  By: Cybersam
  8. #   Date: 25/05/05
  9. #   Version 4
  10. #============================================================================
  11. # 66对此脚本使用方法的说明(可能不是很准确,反正大体能用):
  12. #
  13. # ★、Kboard.keyboard(键位)  返回是否按下这个键的判断。
  14. #     比如条件分歧:Kboard.keyboard($R_Key_H)
  15. #                   则当按下键盘H键的时候条件分歧成立
  16. #
  17. # ★、Kboard.keyb(键位) == 1 当连续按住某键返回真,否则为false
  18. #     比如条件分歧:Kboard.keyb($R_Key_U) == 1
  19. #                   则当持续按下键盘U的时候条件分歧成立
  20. #
  21. # ★、Kboard.key(键位,1) 似乎可以做开关用。按下一次变为true,再按变false
  22. #============================================================================
  23. module Kboard
  24.   #==========================================================================
  25.   # 以下是全键盘按键列表
  26.   #--------------------------------------------------------------------------
  27.   $Rmouse_BUTTON_L = 0x01        # left mouse button
  28.   $Rmouse_BUTTON_R = 0x02        # right mouse button
  29.   $Rmouse_BUTTON_M = 0x04        # middle mouse button
  30.   $Rmouse_BUTTON_4 = 0x05        # 4th mouse button
  31.   $Rmouse_BUTTON_5 = 0x06        # 5th mouse button
  32.   #--------------------------------------------------------------------------
  33.   $R_Key_BACK      = 0x08        # BACKSPACE key
  34.   $R_Key_TAB       = 0x09        # TAB key
  35.   $R_Key_RETURN    = 0x0D        # ENTER key
  36.   $R_Key_SHIFT     = 0x10        # SHIFT key
  37.   $R_Key_CTLR      = 0x11        # CTLR key
  38.   $R_Key_ALT       = 0x12        # ALT key
  39.   $R_Key_PAUSE     = 0x13        # PAUSE key
  40.   $R_Key_CAPITAL   = 0x14        # CAPS LOCK key
  41.   $R_Key_ESCAPE    = 0x1B        # ESC key
  42.   $R_Key_SPACE     = 0x20        # SPACEBAR
  43.   $R_Key_PRIOR     = 0x21        # PAGE UP key
  44.   $R_Key_NEXT      = 0x22        # PAGE DOWN key
  45.   $R_Key_END       = 0x23        # END key
  46.   $R_Key_HOME      = 0x24        # HOME key
  47.   $R_Key_LEFT      = 0x25        # LEFT ARROW key
  48.   $R_Key_UP        = 0x26        # UP ARROW key
  49.   $R_Key_RIGHT     = 0x27        # RIGHT ARROW key
  50.   $R_Key_DOWN      = 0x28        # DOWN ARROW key
  51.   $R_Key_SELECT    = 0x29        # SELECT key
  52.   $R_Key_PRINT     = 0x2A        # PRINT key
  53.   $R_Key_SNAPSHOT  = 0x2C        # PRINT SCREEN key
  54.   $R_Key_INSERT    = 0x2D        # INS key
  55.   $R_Key_DELETE    = 0x2E        # DEL key
  56.   #--------------------------------------------------------------------------
  57.   $R_Key_0         = 0x30        # 0 key
  58.   $R_Key_1         = 0x31        # 1 key
  59.   $R_Key_2         = 0x32        # 2 key
  60.   $R_Key_3         = 0x33        # 3 key
  61.   $R_Key_4         = 0x34        # 4 key
  62.   $R_Key_5         = 0x35        # 5 key
  63.   $R_Key_6         = 0x36        # 6 key
  64.   $R_Key_7         = 0x37        # 7 key
  65.   $R_Key_8         = 0x38        # 8 key
  66.   $R_Key_9         = 0x39        # 9 key
  67.   #--------------------------------------------------------------------------
  68.   $R_Key_A         = 0x41        # A key
  69.   $R_Key_B         = 0x42        # B key
  70.   $R_Key_C         = 0x43        # C key
  71.   $R_Key_D         = 0x44        # D key
  72.   $R_Key_E         = 0x45        # E key
  73.   $R_Key_F         = 0x46        # F key
  74.   $R_Key_G         = 0x47        # G key
  75.   $R_Key_H         = 0x48        # H key
  76.   $R_Key_I         = 0x49        # I key
  77.   $R_Key_J         = 0x4A        # J key
  78.   $R_Key_K         = 0x4B        # K key
  79.   $R_Key_L         = 0x4C        # L key
  80.   $R_Key_M         = 0x4D        # M key
  81.   $R_Key_N         = 0x4E        # N key
  82.   $R_Key_O         = 0x4F        # O key
  83.   $R_Key_P         = 0x50        # P key
  84.   $R_Key_Q         = 0x51        # Q key
  85.   $R_Key_R         = 0x52        # R key
  86.   $R_Key_S         = 0x53        # S key
  87.   $R_Key_T         = 0x54        # T key
  88.   $R_Key_U         = 0x55        # U key
  89.   $R_Key_V         = 0x56        # V key
  90.   $R_Key_W         = 0x57        # W key
  91.   $R_Key_X         = 0x58        # X key
  92.   $R_Key_Y         = 0x59        # Y key
  93.   $R_Key_Z         = 0x5A        # Z key
  94.   #--------------------------------------------------------------------------
  95.   $R_Key_LWIN      = 0x5B        # Left Windows key (Microsoft Natural keyboard)
  96.   $R_Key_RWIN      = 0x5C        # Right Windows key (Natural keyboard)
  97.   $R_Key_APPS      = 0x5D        # Applications key (Natural keyboard)
  98.   #--------------------------------------------------------------------------
  99.   $R_Key_NUMPAD0   = 0x60        # Numeric keypad 0 key
  100.   $R_Key_NUMPAD1   = 0x61        # Numeric keypad 1 key
  101.   $R_Key_NUMPAD2   = 0x62        # Numeric keypad 2 key
  102.   $R_Key_NUMPAD3   = 0x63        # Numeric keypad 3 key
  103.   $R_Key_NUMPAD4   = 0x64        # Numeric keypad 4 key
  104.   $R_Key_NUMPAD5   = 0x65        # Numeric keypad 5 key
  105.   $R_Key_NUMPAD6   = 0x66        # Numeric keypad 6 key
  106.   $R_Key_NUMPAD7   = 0x67        # Numeric keypad 7 key
  107.   $R_Key_NUMPAD8   = 0x68        # Numeric keypad 8 key
  108.   $R_Key_NUMPAD9  = 0x69        # Numeric keypad 9 key
  109.   $R_Key_MULTIPLY  = 0x6A        # Multiply key (*)
  110.   $R_Key_ADD       = 0x6B        # Add key (+)
  111.   $R_Key_SEPARATOR = 0x6C        # Separator key
  112.   $R_Key_SUBTRACT  = 0x6D        # Subtract key (-)
  113.   $R_Key_DECIMAL   = 0x6E        # Decimal key
  114.   $R_Key_DIVIDE    = 0x6F        # Divide key (/)
  115.   #--------------------------------------------------------------------------
  116.   $R_Key_F1        = 0x70        # F1 key
  117.   $R_Key_F2        = 0x71        # F2 key
  118.   $R_Key_F3        = 0x72        # F3 key
  119.   $R_Key_F4        = 0x73        # F4 key
  120.   $R_Key_F5        = 0x74        # F5 key
  121.   $R_Key_F6        = 0x75        # F6 key
  122.   $R_Key_F7        = 0x76        # F7 key
  123.   $R_Key_F8        = 0x77        # F8 key
  124.   $R_Key_F9        = 0x78        # F9 key
  125.   $R_Key_F10       = 0x79        # F10 key
  126.   $R_Key_F11       = 0x7A        # F11 key
  127.   $R_Key_F12       = 0x7B        # F12 key
  128.   #--------------------------------------------------------------------------
  129.   $R_Key_NUMLOCK   = 0x90        # NUM LOCK key
  130.   $R_Key_SCROLL    = 0x91        # SCROLL LOCK key
  131.   #--------------------------------------------------------------------------
  132.   $R_Key_LSHIFT    = 0xA0        # Left SHIFT key
  133.   $R_Key_RSHIFT    = 0xA1        # Right SHIFT key
  134.   $R_Key_LCONTROL  = 0xA2        # Left CONTROL key
  135.   $R_Key_RCONTROL  = 0xA3        # Right CONTROL key
  136.   $R_Key_L_ALT    = 0xA4        # Left ALT key
  137.   $R_Key_R_ALT    = 0xA5        # Right ALT key
  138.   #--------------------------------------------------------------------------
  139.   $R_Key_SEP      = 0xBC        # , key
  140.   $R_Key_DASH      = 0xBD        # - key
  141.   $R_Key_DOTT      = 0xBE        # . Key
  142.   #--------------------------------------------------------------------------
  143.   GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
  144.   GetKeyboardState = Win32API.new("user32","GetKeyState",['I'],'I')
  145.   GetSetKeyState = Win32API.new("user32","SetKeyboardState",['I'],'I')
  146.   #--------------------------------------------------------------------------
  147.   module_function
  148.   #--------------------------------------------------------------------------
  149.   def keyb(rkey)
  150.     if GetKeyState.call(rkey) != 0
  151.       return 1
  152.     end
  153.     return 0
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   def keyboard(rkey)
  157.     GetKeyState.call(rkey) & 0x01 == 1  #
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   def key(rkey, key = 0)
  161.     GetKeyboardState.call(rkey) & 0x01 == key #
  162.   end
  163. end
  164. #==============================================================================
  165. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  166. #==============================================================================
复制代码
我觉得这个脚本很好用!简单易懂!功能还多,可以一直按键显示,按一下键显示,键开关,我就用的这个!

评分

参与人数 1星屑 +66 收起 理由
天地有正气 + 66 感谢回答

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部