[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