[AHK-] 请问如何解决keywait中断卡住key的状况?

楼主: bodhi (????)   2015-05-26 09:24:33
举例: 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
作者: mkz6 ( )   2015-05-26 09:57:00
改用sendinput试试
作者: edwin96017 (闲(  ̄ c ̄)y▂ξ)   2015-05-28 20:45:00
借问 send 3 跟send{3 up/down} 有什么差别嘛?
作者: mkz6 ( )   2015-05-28 22:13:00
看keyhistory就知道send key其实就是送出{key down}{key up}但是实际使用上可能会受不同环境(程式/游戏)影响可参考 http://ahkcn.sourceforge.net/docs/FAQ.htm#games
楼主: bodhi (????)   2015-05-31 10:05:00
试过了 没有用.... 还有什么办法吗?
作者: mkz6 ( )   2015-05-31 20:43:00
我试过可以送出1253/1523, f5按住不放再按f1也可以送出123
楼主: bodhi (????)   2015-06-01 01:38:00
请问你是不是把F5改成别的key 而忘了改keywait, F5?因为我又重新测试一次 还是不行 如果keywait改成别的key则可以 但是这样就不是wait F5了
作者: mkz6 ( )   2015-06-01 09:51:00
我直接复制你内文,只把send全部用sendinput取代下去测试的
楼主: bodhi (????)   2015-06-01 18:01:00
难道有什么误会吗? 还是键盘有影响? 我怎么连按就是会卡住我把F1/F5改成其他key试也一样不行... 我这篇改成i/o key吧
作者: mkz6 ( )   2015-06-01 19:13:00
仔细重看一遍发现我被你第一行写的快速按下误导以为都会放开如果第二个热键按住不放执行到KeyWait时自然会卡住他功能就是暂停script直到按键放开才会继续执行你的需求应该要把KeyWait改成GetKeyState比较适合不然就是开头加上 #MaxThreadsPerHotkey 2 让热键多线程执行不过多线程容易有误触/误发的情况

Links booklink

Contact Us: admin [ a t ] ucptt.com