作者bodhi (????)
看板EzHotKey
标题[AHK-] 请问如何解决keywait中断卡住key的状况?
时间Tue May 26 09:24:33 2015
举例: i就是123 o是5 快速按下i o时 i的123只出来12
然後就被5中断 由於o是keywait 所以o没放开 不但3出不来
而且i无法再输入 完全卡住 请问要如何解决这种冲突状况?
1. 能不能让3照预定程序输入 或是有没有办法直接取消掉?
2. keywait按住之下 如何让卡住的key恢复功能?
i::
sleep 10
send {1 down}
sleep 10
send {1 up}
sleep 10
send {2 down}
sleep 10
send {2 up}
sleep 10
send {3 down}
sleep 10
send {3 up}
return
o::
sleep 10
send {5 down}
sleep 10
keywait, o
send {5 up}
return
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.163.174.77
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EzHotKey/M.1432603476.A.1E5.html
1F:推 mkz6: 改用sendinput试试 05/26 09:57
2F:推 edwin96017: 借问 send 3 跟send{3 up/down} 有什麽差别嘛? 05/28 20:45
3F:推 mkz6: 看keyhistory就知道send key其实就是送出{key down}{key up} 05/28 22:13
4F:推 mkz6: 但是实际使用上可能会受不同环境(程式/游戏)影响 05/28 22:18
6F:→ bodhi: 试过了 没有用.... 还有甚麽办法吗? 05/31 10:05
7F:推 mkz6: 我试过可以送出1253/1523, f5按住不放再按f1也可以送出123 05/31 20:43
8F:→ bodhi: 请问你是不是把F5改成别的key 而忘了改keywait, F5? 06/01 01:38
9F:→ bodhi: 因为我又重新测试一次 还是不行 如果keywait改成别的key则 06/01 01:38
10F:→ bodhi: 可以 但是这样就不是wait F5了 06/01 01:39
11F:推 mkz6: 我直接复制你内文,只把send全部用sendinput取代下去测试的 06/01 09:51
12F:→ bodhi: 难道有甚麽误会吗? 还是键盘有影响? 我怎麽连按就是会卡住 06/01 18:01
13F:→ bodhi: 我把F1/F5改成其他key试也一样不行... 我这篇改成i/o key吧 06/01 18:02
※ 编辑: bodhi (1.163.175.12), 06/01/2015 18:04:29
14F:推 mkz6: 仔细重看一遍发现我被你第一行写的快速按下误导以为都会放开 06/01 19:13
15F:→ mkz6: 如果第二个热键按住不放执行到KeyWait时自然会卡住 06/01 19:13
16F:→ mkz6: 他功能就是暂停script直到按键放开才会继续执行 06/01 19:13
17F:→ mkz6: 你的需求应该要把KeyWait改成GetKeyState比较适合 06/01 19:13
18F:→ mkz6: 不然就是开头加上 #MaxThreadsPerHotkey 2 让热键多线程执行 06/01 19:13
19F:→ mkz6: 不过多线程容易有误触/误发的情况 06/01 19:14