一開始,我是配合SetTimer,用下列指令,來背景對指定的視窗送出Enter
ControlSend, , {Enter}, ahk_id %id%
但發現,當SetTimer On的時候,也就是背景對指定視窗持續送出Enter,
則在其他視窗,使用到Ctrl、Alt、Shift等組合鍵,就會出現問題
後來換用
PostMessage, 0x100, 0x0D, 0, , ahk_id %id% ;0x100 WM_KEYDOWN 0x0D Enter
問題就獲得解決了
但當把按鍵從Enter換成w、a、s、d(背景遊戲角色移動用),使用指令:
PostMessage, 0x100, 0x53, 0, , ahk_id %id% ;0x100 WM_KEYDOWN 0x53 S
Sleep, 500
PostMessage, 0x101, 0x53, 0, , ahk_id %id% ;0x101 WM_WM_KEYUP 0x53 S
卻發現角色大概每次就只會移動二次就停住,手動移一下又會再移動個二次,
但切換到輸入訊息時,又發現,確實是一直有對指定視窗送出w、a、s、d
但將指令改用:
ControlSend, , {s down}, ahk_id %id%
Sleep, 500
ControlSend, , {s up}, ahk_id %_id%
就不會有移動二次就停住的問題,但卻會有如前述影響組合鍵的問題
請問是否有不會影響到組合鍵,背景持續送出按鍵的方法?
如果說是遊戲對於w、a、s、d有特殊處理的話,
又為何用ControlSend來背景控制角色移動就沒有問題呢?
附註:AutoHotKey真是太好用了!!!