赞 | 6 |
VIP | 356 |
好人卡 | 3 |
积分 | 2 |
经验 | 297560 |
最后登录 | 2022-1-18 |
在线时间 | 509 小时 |
Lv1.梦旅人 有事烧纸
- 梦石
- 0
- 星屑
- 154
- 在线时间
- 509 小时
- 注册时间
- 2005-10-22
- 帖子
- 6982
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
全键盘~ 改
说明:至于原来站上那个全键盘的有什么问题试就知道了。。。。
1、Kboard.press?(key) 同 Input.press?(key)
2、Kboard.repeat?(key) 同 Input.repeat?(key)
3、Kboard.trigger?(key) 同 Input.trigger?(key)
以下脚本中没给出键值,需要的自己查找。。。
- module Kboard
- 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
复制代码 |
|