為什麼這篇滑鼠連點程式碼鄉民發文收入到精華區:因為在滑鼠連點程式碼這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者king37937 (憶~)看板EzHotKey標題Re: [請問] 有可以設定滑鼠活動連點的程...
※ 引述《meblessme (123)》之銘言:
: 有些遊戲似乎設定成不能連點 但卻常常得大量連點
: 希望有遊戲中 能夠隨時在需要的時候 長按滑鼠就能連點
: 放開就能取消連點的程式或方法 不知道有沒有
: 版上爬過 都是要另外設熱鍵 不能隨放隨消的
: 謝謝
這種簡單功能的小程式,想想還是把它做成小教學文好了
一方面整理出來自己的思考方式,一方面也讓各位版友相互學習一下
這種近似寫程式的東西,有兩點是非常重要的
一、解決問題的思考流程 二、大量的練習
這篇改成小教學文,就是提供解決問題的思考流程的一些資訊給各位版友
-----------------------------以下正文開始-----------------------------
一、問題:希望能在按住滑鼠左鍵時能提供滑鼠連點的功能,並且在放開滑鼠左鍵時
取消自動連點的功能。
二、思考步驟:
Step 1:
因為AutoHotKey正好可以使用滑鼠左鍵的按下及放開來充當熱鍵,
因此我們馬上可以寫出如下的程式碼:
--------------------程式碼區--------------------
LButton:: ;利用滑鼠左鍵按下充當觸發熱鍵
return
------------------程式碼區結束------------------
Step 2:
因為需要連點,所以我們會需要指令Click(點擊滑鼠)、Loop(反覆),
Loop與Click的組合就可以達成連點的需求。而且為了避免連點
的速度過快,通常也會加入Sleep(休息)指令來達成降低與控制滑鼠
點擊速度。如此程式碼就變成如下:
--------------------程式碼區--------------------
LButton:: ;利用滑鼠左鍵按下充當觸發熱鍵
Loop
{
Click
Sleep, 300
}
return
------------------程式碼區結束------------------
Step 3:
現在我們需要的是放開滑鼠左鍵時可以停止連點。
這可以分成兩部分來思考:1、偵測滑鼠按鍵是否放開 2、停止連點。
關於第一點有GetKeyState(檢查按鍵狀態)指令可以使用,
至於第二點因為連點是使用Loop來完成,所以只要離開Loop就可以停止連點,
指令Break(中斷)可以達成離開Loop的功能。
總結一下,我們先偵測滑鼠左鍵是否放開,如果沒放開則繼續連點,
如果放開了那就離開Loop中斷連點。
這裡依據滑鼠按鍵的狀況有兩種不同的流程(若是...則...,若不是...則...)
這時我們需要可以控制流程的指令If...Else...。
--------------------程式碼區--------------------
LButton:: ;利用滑鼠左鍵按下充當觸發熱鍵
Loop
{
GetKeyState, state, LButton, P ;偵測滑鼠左鍵狀態
If ( state = U ) ;如果滑鼠左鍵放開
{
Break ;中斷迴圈停止連點
}
Else
{
Click
Sleep, 300
}
}
return
------------------程式碼區結束------------------
Step 4:
理論上這樣子應該就可以完成題目需求,但是在實際運作及測試後,
發現並非想像般的工作,反覆測試以及爬文後,才知道是GetKeyState
這指令上的限制。參考板上這兩篇文 #1BIATYov 及 #1BIT-TU1 之後,
改成加入一個變數來控制滑鼠的連點與否。
--------------------程式碼區--------------------
clickStop := false ;新增的變數,用來表示是否連點
LButton:: ;利用滑鼠左鍵按下充當觸發熱鍵
Loop
{
If ( clickStop = true ) ;檢查控制變數,如果要停止連點
{
clickStop := false
Break ;中斷迴圈停止連點
}
Else
{
Click
Sleep, 300
}
}
return
LButton Up:: ;正好AutoHotKey可以用按鍵放開來當熱鍵
;只要在按鍵後方加上Up就可以了
clickStop := true ;更改變數,指定連點中止
return
------------------程式碼區結束------------------
三、總結:
大致上的思考流程就是這樣子,關於各種指令的詳細格式以及用法
就只能請各位版友自己查AutoHotKey的說明檔了。另外這是基本的
用滑鼠控制連點的方法,遊戲中是否有效就沒有測試了。
最後要說的還是請大家多看多練習了。
還有排版不好就請大家多見諒了。
※ 編輯: king37937 來自: 114.42.187.111 (02/26 00:42)