作者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/m.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