作者joiedevivre (请不要宣传罢免蔡正元!!!)
站内EzHotKey
标题[AHK-] 无数字键键盘 切换数字键模式
时间Mon Apr 13 18:29:52 2015
大家好, 可能有人看过没数字键的键盘(80%键盘)吧
我想为这种键盘找回数字键模式, 方法是按下某个组合键(在这边是Ctrl+\)
就把m变成0 n变成00 .变成. j变1 k变2 l变3... 等等的以此类推
以下是我目前的code 抱歉语法不太熟写得很丑也没有缩排
;NUMBER MODE
;^\::Send {NumLock}
;本来想要用NumState的 不过GetKeyState试半天出不来就先自订变数
;下面的目的是设定一个变数 在0和1之间切换 是0就是原本的键位 是1就输出数字
^BackSpace::numMode = 0
;还要先用组合键initial一个真烦 可惜我不知道让他直接初始值为0的方法
^\::
numMode := numMode+1
numMode := Mod(numMode, 2)
return
m::
if (numMode=1) {
Send 0
}
else {
Send m
}
return
!n::MsgBox numMode is %numMode% ;查看现在是0还是1
结果按m都会出现71hotkeys have been recieve in the last in 1109ms
http://imgur.com/M2qe5vy
请问是什麽原因? 有更好的写法吗? 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.215.107
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EzHotKey/M.1428920995.A.5B9.html
1F:推 LPH66: 单回答你的问题: 把 m:: 前面加上 $ 字, 这表示这组 hotkey 04/13 20:01
2F:→ LPH66: 只在使用者被按下时触发, 不会被 Send 触发 04/13 20:01
3F:→ LPH66: 初始化的部份直接写在最上面就好, 记得也要加个 return 04/13 20:02
4F:→ LPH66: 这样 script 开启时就会把初始化的部份先执行过 04/13 20:02
5F:→ LPH66: 另外切换可以不用 +1 mod 2 两步, 用 1 去减只要 1 步就好 04/13 20:02
6F:→ LPH66: 话说回来, 如果你想试 GetKeyState 的话, 要这麽用: 04/13 20:06
7F:→ LPH66: GetKeyState, var, NumLock, T 04/13 20:06
8F:→ LPH66: 这之後 var 如果是 "D" 表示亮灯, "U" 表示灯灭 04/13 20:07
9F:→ LPH66: 主要是那个 , T 各种 Lock 要用这个才可以读取目前状态 04/13 20:07
10F:→ LPH66: 否则它读取的是目前该按键是不是正被按着 04/13 20:08
11F:→ joiedevivre: 感谢您的指点! 不懂的部分我再研究看看 04/13 20:31
※ 编辑: joiedevivre (140.116.215.107), 04/13/2015 20:34:06
※ 编辑: joiedevivre (140.116.215.107), 04/13/2015 20:38:20
啊啊 还有如果使用这段code 在大写锁定模式下 m j k l等按键都还是只会输出小写...
是不是要再加入一个if caps on的if 还是有其它解法? 谢谢
※ 编辑: joiedevivre (140.116.192.21), 04/14/2015 11:07:55