[AHK-] 請問如何解決keywait中斷卡住key的狀況?

看板EzHotKey作者 (????)時間10年前 (2015/05/26 09:24), 10年前編輯推噓7(7012)
留言19則, 3人參與, 最新討論串1/4 (看更多)
舉例: 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://www.ptt.cc/bbs/EzHotKey/M.1432603476.A.1E5.html

05/26 09:57, , 1F
改用sendinput試試
05/26 09:57, 1F

05/28 20:45, , 2F
借問 send 3 跟send{3 up/down} 有什麼差別嘛?
05/28 20:45, 2F

05/28 22:13, , 3F
看keyhistory就知道send key其實就是送出{key down}{key up}
05/28 22:13, 3F

05/28 22:18, , 4F
但是實際使用上可能會受不同環境(程式/遊戲)影響
05/28 22:18, 4F

05/28 22:20, , 5F

05/31 10:05, , 6F
試過了 沒有用.... 還有甚麼辦法嗎?
05/31 10:05, 6F

05/31 20:43, , 7F
我試過可以送出1253/1523, f5按住不放再按f1也可以送出123
05/31 20:43, 7F

06/01 01:38, , 8F
請問你是不是把F5改成別的key 而忘了改keywait, F5?
06/01 01:38, 8F

06/01 01:38, , 9F
因為我又重新測試一次 還是不行 如果keywait改成別的key則
06/01 01:38, 9F

06/01 01:39, , 10F
可以 但是這樣就不是wait F5了
06/01 01:39, 10F

06/01 09:51, , 11F
我直接複製你內文,只把send全部用sendinput取代下去測試的
06/01 09:51, 11F

06/01 18:01, , 12F
難道有甚麼誤會嗎? 還是鍵盤有影響? 我怎麼連按就是會卡住
06/01 18:01, 12F

06/01 18:02, , 13F
我把F1/F5改成其他key試也一樣不行... 我這篇改成i/o key吧
06/01 18:02, 13F
※ 編輯: bodhi (1.163.175.12), 06/01/2015 18:04:29

06/01 19:13, , 14F
仔細重看一遍發現我被你第一行寫的快速按下誤導以為都會放開
06/01 19:13, 14F

06/01 19:13, , 15F
如果第二個熱鍵按住不放執行到KeyWait時自然會卡住
06/01 19:13, 15F

06/01 19:13, , 16F
他功能就是暫停script直到按鍵放開才會繼續執行
06/01 19:13, 16F

06/01 19:13, , 17F
你的需求應該要把KeyWait改成GetKeyState比較適合
06/01 19:13, 17F

06/01 19:13, , 18F
不然就是開頭加上 #MaxThreadsPerHotkey 2 讓熱鍵多線程執行
06/01 19:13, 18F

06/01 19:14, , 19F
不過多線程容易有誤觸/誤發的情況
06/01 19:14, 19F
文章代碼(AID): #1LOyjK7b (EzHotKey)
討論串 (同標題文章)
文章代碼(AID): #1LOyjK7b (EzHotKey)