看板 EzHotKey 關於我們 聯絡資訊
※ 引述《timofEE (新人)》之銘言: : 小弟第一次發文 請各位多多指教 : 我想做出:按下F4鍵後,就自動壓著滑鼠左鍵,直到偵測到再次壓下F4鍵(return) : 原先做出的程式為 : {F4}:: : send,{Click down} : sleep 50 : if GetKeyState("f4") : send{click up} : {F4}指令來源:https://www.autohotkey.com/docs/commands/Send.htm 特殊鍵作為熱鍵使用時不能用大括號 熱鍵 http://ahkcn.sourceforge.net/docs/Hotkeys.htm 按鍵列表 http://ahkcn.sourceforge.net/docs/KeyList.htm : Click down指令來源https://www.autohotkey.com/docs/commands/Click.htm : 修改範例為http://catchtest.pixnet.net/blog/post/24561139 : sleep 50 是為了防止電腦連續讀到F4 造成程式直接結束的狀況 防誤觸用 KeyWait 比較適合 http://ahkcn.sourceforge.net/docs/commands/KeyWait.htm 然後 GetKeyState 要移到前面去判定左鍵而不是 F4 : 首先出現的是 電腦無法辨識{F4} 就算改成{alt}也仍然是無法辨識 : 第二是{click up}無法辨識 改成{lbutton up}也一樣 : http://imgur.com/h8YslZK : http://imgur.com/TV8RrqT : (lbutton up down在https://goo.gl/w5cNGi中證實可用) : http://imgur.com/6Jc4cHX 因為你的 send{click up} 連在一起了 ^^^^ 指令後第一個逗號可省略,但要用空格分開 : 爬了文卻發現大多數是想要 按住某按鈕時快速連打 : 並沒有這種自動壓著的範例(或許是因為太簡單) : 總之 煩請大大幫小弟解惑 : 另外還有{F4}:: $F4:: #F4:: 這三種開頭的差別 熱鍵的修飾符: http://ahkcn.sourceforge.net/docs/Hotkeys.htm#Symbols : 與if not GetKeyState("F1", "P") 中 "P"的用途 (https://disp.cc/b/33-L7) http://ahkcn.sourceforge.net/docs/commands/GetKeyState.htm P: 獲取物理狀態 (即使用者是否實際按住了按鍵) ==================== 參考 GetKeyState 底下的範例改寫: F4:: KeyWait F4 ; 等待 F4 放開 防誤觸 GetKeyState, state, LButton ; 獲取左鍵狀態 if state = D ; 如果狀態=按下 Click Up ; 鬆開左鍵 else ; 否則 Click Down ; 按住左鍵 return ==================== GetKeyState 改用函數的寫法: F4:: KeyWait F4 ; 等待 F4 放開 (防誤觸) if GetKeyState("LButton") ; 如果左鍵是按下狀態 Click Up ; 鬆開左鍵 else ; 否則 Click Down ; 按住左鍵 return ==================== 也可把按鍵判斷寫進 send 簡化成一行: F4 Up::Send % "{Click " . ( GetKeyState("LButton") ? "Up}" : "Down}" ) ==================== 如果不用太精確的判定, 直接用 F4::Click Down 讓滑鼠按住, 需要放開時,點一下滑鼠左鍵就行了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.86.145 ※ 文章網址: https://www.ptt.cc/bbs/EzHotKey/M.1501173579.A.263.html
timofEE: 感謝解惑了許多問題 很有幫助 謝謝 07/28 16:47