You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
307 lines
8.1 KiB
307 lines
8.1 KiB
#cs ----------------------------------------------------------------------------
|
|
|
|
AutoIt Version: 3.3.14.2
|
|
Author: Samuel Pua
|
|
|
|
Script Function:
|
|
To have autoclicker functionality with manual editable strokes.
|
|
|
|
#ce ----------------------------------------------------------------------------
|
|
|
|
; Script Start - Add your code below here
|
|
#include <FileConstants.au3>
|
|
#include <MsgBoxConstants.au3>
|
|
|
|
#include <Timers.au3>
|
|
|
|
HotKeySet("+q", "reset") ; shift q resets
|
|
HotKeySet("+w", "addLeft") ; add left click
|
|
HotKeySet("+e", "addRight") ; add right click
|
|
HotKeySet("+r", "addNo") ; add no click
|
|
|
|
HotKeySet("+{ENTER}", "addEnter") ; add enter
|
|
HotKeySet("+{ESC}", "addEsc") ; add enter
|
|
|
|
HotKeySet("+a", "showSteps") ; show steps
|
|
HotKeySet("+s", "runAll") ; run script
|
|
HotKeySet("~", "closeProgram") ; Exit
|
|
HotKeySet("?", "helpMe") ; Help
|
|
|
|
HotKeySet("{+}", "plusTimes") ; Add 1 more run iteration
|
|
HotKeySet("-", "minusTimes") ; Reduce 1 run iteration
|
|
HotKeySet("=", "setTimes") ; Set times
|
|
HotKeySet("|", "changeDelay") ; Change delay
|
|
|
|
HotKeySet("+l", "fileLoad") ; fileload
|
|
HotKeySet("+f", "fileSave") ; filesave
|
|
|
|
;;;;;;;;;;;;;;;;;;; Start ;;;;;;;;;;;;;;;;;;;
|
|
Global $mouseFile="mousestrokes.txt"
|
|
|
|
Global $current=0
|
|
Global $memoryX[1000]
|
|
Global $memoryy[1000]
|
|
Global $delays[1000]
|
|
Global $clicks[1000] ; 0 left, 1 right, 2 no
|
|
Global $lastTime=0
|
|
Global $startTime
|
|
Global $runTimes=1
|
|
|
|
Global $instructions
|
|
|
|
$instructions = ""
|
|
$instructions = $instructions & "Shift Q: Reset Instructions"&@CRLF
|
|
$instructions = $instructions & "Shift W: Add new left click"&@CRLF
|
|
$instructions = $instructions & "Shift E: Add new right click"&@CRLF
|
|
$instructions = $instructions & "Shift R: Add delay"&@CRLF
|
|
$instructions = $instructions & "Shift Enter: Add enter key"&@CRLF
|
|
$instructions = $instructions & "|: Manually change delay"&@CRLF&@CRLF
|
|
|
|
$instructions = $instructions & "+: Increase number of runs"&@CRLF
|
|
$instructions = $instructions & "-: Reduce number of runs"&@CRLF
|
|
$instructions = $instructions & "=: Set number of runs"&@CRLF&@CRLF
|
|
|
|
$instructions = $instructions & "Shift A: Show Steps"&@CRLF
|
|
$instructions = $instructions & "Shift S: Run clicks"&@CRLF&@CRLF
|
|
|
|
$instructions = $instructions & "Shift L: Load File from "&$mouseFile&@CRLF
|
|
$instructions = $instructions & "Shift F: Save File to "&$mouseFile&@CRLF&@CRLF
|
|
|
|
$instructions = $instructions & "~: Exit Program"&@CRLF
|
|
$instructions = $instructions & "?: Help"
|
|
|
|
MsgBox(0,"Instructions", $instructions)
|
|
|
|
Func reset()
|
|
$current=0
|
|
$lastTime=0
|
|
$runTimes=1
|
|
Msgbox(0,"Reset", "All keys reset")
|
|
EndFunc
|
|
|
|
Func addLeft()
|
|
$memoryX[$current]=mousegetpos(0)
|
|
$memoryY[$current]=mousegetpos(1)
|
|
$clicks[$current]=0 ; left click
|
|
if $current=0 Then
|
|
$startTime=_Timer_Init()
|
|
$delays[$current]=0
|
|
Else
|
|
$delays[$current] = _Timer_Diff($startTime)-$lastTime
|
|
$lastTime = _Timer_Diff($startTime)
|
|
EndIf
|
|
$current=$current+1
|
|
EndFunc
|
|
|
|
Func addRight()
|
|
$memoryX[$current]=mousegetpos(0)
|
|
$memoryY[$current]=mousegetpos(1)
|
|
$clicks[$current]=1 ; right click
|
|
if $current=0 Then
|
|
$startTime=_Timer_Init()
|
|
$delays[$current]=0
|
|
Else
|
|
$delays[$current] = _Timer_Diff($startTime)-$lastTime
|
|
$lastTime = _Timer_Diff($startTime)
|
|
EndIf
|
|
$current=$current+1
|
|
EndFunc
|
|
|
|
Func addNo()
|
|
$memoryX[$current]=mousegetpos(0)
|
|
$memoryY[$current]=mousegetpos(1)
|
|
$clicks[$current]=2 ; no click
|
|
if $current=0 Then
|
|
$startTime=_Timer_Init()
|
|
$delays[$current]=0
|
|
Else
|
|
$delays[$current] = _Timer_Diff($startTime)-$lastTime
|
|
$lastTime = _Timer_Diff($startTime)
|
|
EndIf
|
|
$current=$current+1
|
|
EndFunc
|
|
|
|
Func addEnter()
|
|
$memoryX[$current]=mousegetpos(0)
|
|
$memoryY[$current]=mousegetpos(1)
|
|
$clicks[$current]=3 ; Enter
|
|
if $current=0 Then
|
|
$startTime=_Timer_Init()
|
|
$delays[$current]=0
|
|
Else
|
|
$delays[$current] = _Timer_Diff($startTime)-$lastTime
|
|
$lastTime = _Timer_Diff($startTime)
|
|
EndIf
|
|
$current=$current+1
|
|
EndFunc
|
|
|
|
Func addEsc()
|
|
$memoryX[$current]=mousegetpos(0)
|
|
$memoryY[$current]=mousegetpos(1)
|
|
$clicks[$current]=4 ; Esc
|
|
if $current=0 Then
|
|
$startTime=_Timer_Init()
|
|
$delays[$current]=0
|
|
Else
|
|
$delays[$current] = _Timer_Diff($startTime)-$lastTime
|
|
$lastTime = _Timer_Diff($startTime)
|
|
EndIf
|
|
$current=$current+1
|
|
EndFunc
|
|
|
|
Func showSteps()
|
|
Local $printer=""
|
|
For $i = 0 to $current-1
|
|
$printer=$printer&"Delay: "&$delays[$i]&"ms"&@CRLF
|
|
|
|
if $clicks[$i]=0 Then
|
|
$printer=$printer&"Left Click: "
|
|
ElseIf $clicks[$i]=1 Then
|
|
$printer=$printer&"Right Click: "
|
|
ElseIf $clicks[$i]=2 Then
|
|
$printer=$printer&"No Click: "
|
|
ElseIf $clicks[$i]=3 Then
|
|
$printer=$printer&"Enter Key: "
|
|
ElseIf $clicks[$i]=4 Then
|
|
$printer=$printer&"ESC Key: "
|
|
EndIf
|
|
|
|
$printer=$printer&$memoryX[$i]&", "&$memoryY[$i]&@CRLF&@CRLF
|
|
Next
|
|
MsgBox(0,"Show Steps Recorded",$printer)
|
|
EndFunc
|
|
|
|
Func changeDelay()
|
|
for $i = 0 to $current-1
|
|
$response=InputBox("Manually change timer for step"&$i+1,"Current delay: "&$delays[$i]&"ms")
|
|
if $response<>"" Then
|
|
$delays[$i]=$response
|
|
endif
|
|
Next
|
|
EndFunc
|
|
|
|
Func runAll()
|
|
sleep(1000)
|
|
for $runrun = 1 to $runTimes
|
|
for $i = 0 to $current-1
|
|
Sleep($delays[$i])
|
|
if $clicks[$i]=0 then ; if left
|
|
MouseClick("left", $memoryX[$i], $memoryY[$i],1,0)
|
|
ElseIf $clicks[$i]=1 then ; if right
|
|
MouseClick("right", $memoryX[$i], $memoryY[$i],1,0)
|
|
ElseIf $clicks[$i]=2 Then
|
|
MouseMove( $memoryX[$i], $memoryY[$i]); if nothing so do nothing
|
|
ElseIf $clicks[$i]=3 Then
|
|
Send("{ENTER}")
|
|
ElseIf $clicks[$i]=4 Then
|
|
Send("{ESC}")
|
|
endif
|
|
Next
|
|
Next
|
|
EndFunc
|
|
|
|
Func closeProgram()
|
|
MsgBox(0,"Exit","Exiting program...")
|
|
Exit(0)
|
|
EndFunc
|
|
|
|
Func helpMe()
|
|
MsgBox(0,"Instructions", $instructions)
|
|
EndFunc
|
|
|
|
Func plusTimes()
|
|
$runTimes=$runTimes+1
|
|
MsgBox(0, "Number of runs", "Current number of runs is: "&$runTimes)
|
|
EndFunc
|
|
|
|
Func minusTimes()
|
|
$runTimes=$runTimes-1
|
|
MsgBox(0, "Number of runs", "Current number of runs is: "&$runTimes)
|
|
EndFunc
|
|
|
|
Func setTimes()
|
|
$runTimes=InputBox("Please key in desired run times", "Current loop count set: "&$runTimes)
|
|
MsgBox(0, "Number of runs", "Current number of runs is: "&$runTimes)
|
|
EndFunc
|
|
|
|
Func fileLoad()
|
|
Local $hFileOpen = FileOpen($mouseFile, $FO_READ)
|
|
If $hFileOpen = -1 Then
|
|
MsgBox($MB_SYSTEMMODAL, "", "An error occurred when reading the file.")
|
|
Return False
|
|
EndIf
|
|
|
|
FileClose($hFileOpen)
|
|
|
|
$tempLine="Start"
|
|
$lineCount=0
|
|
$done=0
|
|
$current=0
|
|
While $done = 0
|
|
$lineCount=$lineCount+1
|
|
$temp=FileREadLine($mouseFile,$lineCount)
|
|
if @error<>0 Then
|
|
$done=1
|
|
EndIf
|
|
|
|
;Do actual work
|
|
if $done=0 Then
|
|
if (StringLen($temp)>=7) and (StringMid($temp,1,1)<>"#") then
|
|
$commands=StringSplit($temp," ")
|
|
if $commands[1]="L" Then
|
|
$clicks[$current]=0
|
|
ElseIf $commands[1]="R" Then
|
|
$clicks[$current]=1
|
|
ElseIf $commands[1]="N" Then
|
|
$clicks[$current]=2
|
|
ElseIf $commands[1]="E" Then
|
|
$clicks[$current]=3
|
|
ElseIf $commands[1]="X" Then
|
|
$clicks[$current]=4
|
|
endif
|
|
|
|
$memoryX[$current]=$commands[2]*1
|
|
$memoryY[$current]=$commands[3]*1
|
|
$delays[$current]=$commands[4]*1
|
|
|
|
$current=$current+1
|
|
EndIf
|
|
EndIf
|
|
WEnd
|
|
|
|
MsgBox(0,"File Load", $mouseFile&" loaded successfully!")
|
|
|
|
EndFunc
|
|
|
|
Func fileSave()
|
|
Local $hFileOpen = FileOpen($mouseFile, $FO_OVERWRITE)
|
|
If $hFileOpen = -1 Then
|
|
MsgBox($MB_SYSTEMMODAL, "", "An error occurred when reading the file.")
|
|
Return False
|
|
EndIf
|
|
|
|
for $i = 0 to $current-1
|
|
$line=""
|
|
If $clicks[$i]=0 Then
|
|
$line="L "
|
|
ElseIf $clicks[$i]=1 Then
|
|
$line="R "
|
|
ElseIf $clicks[$i]=2 Then
|
|
$line="N "
|
|
ElseIf $clicks[$i]=3 Then
|
|
$line="E "
|
|
ElseIf $clicks[$i]=4 Then
|
|
$line="X "
|
|
EndIf
|
|
|
|
$line=$line&$memoryX[$i]&" " & $memoryY[$i] & " " & $delays[$i]
|
|
FileWriteLine ( $hFileOpen, $line )
|
|
Next
|
|
|
|
FileClose($hFileOpen)
|
|
MsgBox(0,"File Save", $mouseFile&" saved successfully!")
|
|
EndFunc
|
|
|
|
While 1
|
|
Sleep(100)
|
|
WEnd
|