Re: [AHK-] 請幫看程式:按一下就自動壓住左鍵

作者: mkz6 ( )   2017-07-28 00:39:34
※ 引述《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 讓滑鼠按住,
需要放開時,點一下滑鼠左鍵就行了。
作者: timofEE (新人)   2017-07-28 16:47:00
感謝解惑了許多問題 很有幫助 謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com