[AutoHotKey]-MyAutoClick - 犬大叔在幼稚中- 痞客邦
文章推薦指數: 80 %
之前介紹過用AutoHotKey寫出腳本[AutoHotKey]-TsumTsum自動收心程式1 讓Tsum Tsum能以模擬器自動收心 ... 將滑鼠點擊的位置以及順序記錄在文字檔中.
關閉廣告
犬大叔在幼稚中
跳到主文
汪汪...
部落格全站分類:不設分類
相簿
部落格
留言
名片
Jan10Sun201601:16
[AutoHotKey]-MyAutoClick
之前介紹過用AutoHotKey寫出腳本
[AutoHotKey]-TsumTsum自動收心程式1
讓TsumTsum能以模擬器自動收心的MyAutoClick
MyAutoClick的基本運作:
1.將滑鼠點擊的位置以及順序記錄在文字檔中
2.從該文字檔依序讀取滑鼠點擊的位置
3.移動滑鼠至該位置並執行點擊的動作
4.重複動作2.到3.,直到程式被終止或是重新讀入腳本的命令發生
此篇就接續著來介紹腳本內容是如何編寫的。
AutoHotKey是一種能依照簡單的語法寫出的動作腳本
在電腦上自動執行的軟體工具
首先可以從AutoHotKey的官網中取得主程式
之後若沒有特殊改動,則預設的腳本位置在
C:\Users\user\Documents\AutoHotkey.ahk
我們初期就先用這個AutoHotkey.ahk來編輯
第一個測試,將以下的綠色文字貼到AutoHotkey.ahk中:
;;;;;;;;;;[從這一行開始複製];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
~LButton&m::
Msgbox,嗨!世界!
return
;;;;;;;;;;[複製到這裡結束];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
執行AutoHotKey之後
我們按住滑鼠左鍵加上鍵盤的字母'm'
就會出現如下的對話框:
如果您也看到!恭喜!您已經學會使用AutoHotKey啦!
簡單解說一下:
分號';'是註解的意思,也就是在分號之後輸入的同列文字都不會被當作腳本來執行
~LButton:指的是按住滑鼠左鍵的意思
&m:表示接連前面的組成複合按鍵以觸動以下的腳本動作
Msgbox:顯示一個(基本)提示對話視窗
return:表示此段動作結束
所以最基本的AutoHotKey腳本的組成:
1.觸發的按鍵組合::
2.動作腳本
3.動作結束(return)
接著我們改動內容如下:
;;;;;;;;;;[從這一行開始複製];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
~LButton&m::
Msgbox,嗨!世界!我的第一個AutoHotKey程式
return
;;;;;;;;;;[複製到這裡結束];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
儲存之後,我們要更新腳本,讓AutoHotKey重新讀入
從右下角的常駐圖示-->右鍵-->選擇"ReloadThisScript"
如此就能使AutoHotKey重新讀入腳本
看到對話視窗的內容改變了!
對於正在編寫腳本測試,要一直重複此動作,是否很不方便(懶...)?
因此第一個宅犬編寫AutoHotKey最常用的功能就是:
;●●●重新載入Autohotkey的腳本ahkMouse(L)+r
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
~LButton&r::
reload;重新讀入腳本
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
看懂了嗎?就是:
1.按住滑鼠左鍵加上'r'後
2.執行重新讀入腳本(reload)
3.腳本結束(return)
有了這個動作腳本之後,我們就能修改完成
就住滑鼠左鍵+'r'來重新讀入腳本
此外,reload的命令還有個額外的附加作用
能夠立刻中止目前正在執行的腳本
這是很重要的指令!
當編寫過程測試時,萬一動作失控
可以立刻執行此一動作來中止世界的毀滅呀!
歡迎加入懶人的世界!!
好了正式來介紹MyAutoClick的腳本吧!
1.重設記錄檔(Clear)
當對應的滑鼠順序位置改變時,需要重新定位
就得將原來的紀錄檔C:\MyAutoClick.txt清除
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
~LButton&c::
FileDelete,C:\MyAutoClick.txt ;;;先刪除檔案
FileAppend,,C:\MyAutoClick.txt ;;;建立空白的檔案
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
觸動按鍵組合:按住滑鼠左鍵+'c'(clear)
2.紀錄滑鼠座標(Get)
取得滑鼠座標,並記錄在檔案C:\MyAutoClick.txt中
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
~LButton&g::
CoordMode,Mouse,Screen ;;;將滑鼠的座標系統對應到螢幕上
MouseGetPos,xpos,ypos,,,1 ;;;取得滑鼠的座標
FileAppend, ;;;加入到檔案尾端
(
%xpos% ;;;寫入X座標
%ypos% ;;;寫入Y座標
),C:\MyAutoClick.txt; ;;;指定寫入的檔案
ToolTip,取得:X%xpos%Y%ypos% ;;;顯示提示訊息取得的X,Y座標
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
觸動按鍵組合:按住滑鼠左鍵+'g'(get)
3.從檔案中讀取座標,並自動(Auto)依序點擊
這裡是MyAutoClick最核心的部分
將X,Y座標依序從C:\MyAutoClick.txt讀出
並移動滑鼠至該位置並執行點擊的動作
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
~LButton&a::
CoordMode,Mouse,Screen ;;;將滑鼠的座標系統對應到螢幕上
XArray:=Object() ;;;宣告座標軸的陣列物件,用以依序儲存滑鼠X,Y座標
XArray[j]:=A_LoopField
XArray[j,k]:=A_LoopReadLine
Loop,Read,C:\MyAutoClick.txt ;;;依序讀取檔案中的每一行
{
XArrayCount+=1 ;;;紀錄讀取紀錄總數
XArray[XArrayCount]:=A_LoopReadLine ;;;讀取一行放入陣列
}
XArrayCount/=2 ;;;由於一次需要兩筆座標紀錄(X,Y),因此記錄總數需要除以2
Sleep,500 ;;;給予輸入組合按鍵後的緩衝時間,避免影響到滑鼠的位置
Loop ;;;重複執行,不指定重複次數,直到重新讀入腳本或是程式終止
{
nowIndx:=1 ;;;紀錄目前讀到陣列的位置,初始化為1
Loop%XArrayCount% ;;;依照座標組數重複執行
{
nowX:=XArray[nowIndx] ;;;讀入第一筆為X座標
newY:=XArray[nowIndx+1] ;;;讀入第二筆為Y座標
mousemove,%nowX%,%newY%,50, ;;;移動滑鼠到該位置
MouseClick ;;;執行滑鼠點擊動作
Sleep,500 ;;;給予作用對象程式的反應時間
nowIndx+=2 ;;;跳至下一組X,Y位置
}
}
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
在C:\MyAutoClick.txt 中紀錄的數值將如下:
1172
1055
1388
1059
31
39
784
14
869
18
因此必須讀取的是
X:1172
延伸文章資訊
- 1輕鬆學會AutoHotkey的熱鍵:熱鍵用法實例解說(AHK #4)
萬用按鍵。 *#n:: 表示(Alt、Ctrl、Shift各種組合)+Win+n皆生效. &, 將鍵盤按鍵與滑鼠按鈕 ...
- 2Click - AutoHotKey.tw - Google Sites
Click. 在指定坐標處按一下滑鼠按鈕. 它還可以按下滑鼠按鈕, 轉動滑鼠滾輪或移動滑鼠. 這裡有一些常見用法的例子(所有逗號都是可選的): ...
- 3[AHK-] AutoHotKey 快速入門教學- 模擬鍵盤滑鼠動作
模擬鍵盤滑鼠動作: Sending keystrokes and mouse clicks http://www.autohotkey.com/docs/Tutorial.htm#Send 模擬...
- 4[AutoHotKey]-MyAutoClick - 犬大叔在幼稚中- 痞客邦
之前介紹過用AutoHotKey寫出腳本[AutoHotKey]-TsumTsum自動收心程式1 讓Tsum Tsum能以模擬器自動收心 ... 將滑鼠點擊的位置以及順序記錄在文字檔中.
- 5点击
AutoHotkey. 指南(快速入门). FAQ(常见问题). 命令和函数索引. 脚本展示. 更新历史. ▻基本用法和语法. 热键. 热字串和自动替换. 重映射按键和鼠标按钮.