Re: [請問] 有可以設定滑鼠活動連點的程式嗎(非自뀠…

看板EzHotKey作者 (憶~)時間15年前 (2010/02/24 20:37), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/1
※ 引述《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)

02/26 01:22, , 1F
《EZsoft》板文章 #19LTcpXJ 有個簡單做法提供參考 :)
02/26 01:22, 1F

02/28 21:49, , 2F
看到了,簡潔有力
02/28 21:49, 2F

03/05 14:33, , 3F
AHK 的說明檔,有人有翻譯好的嗎?
03/05 14:33, 3F

03/06 19:42, , 4F
以前我有翻譯計畫,但自己英文也不行就放棄了
03/06 19:42, 4F

03/07 10:51, , 5F
那還是多多參考別人的作品囉
03/07 10:51, 5F
文章代碼(AID): #1BXHsY9H (EzHotKey)
文章代碼(AID): #1BXHsY9H (EzHotKey)