-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPyAutoClicker.py
More file actions
120 lines (101 loc) · 4.21 KB
/
PyAutoClicker.py
File metadata and controls
120 lines (101 loc) · 4.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# PyAutoClicker
# Description: Simple autoclicker that can be used for clicking a lot
# Author: jmshnds
# Date: 7 May 2018
import sys
import time
from AutoClicker import AutoClicker
def handleErr(message):
print("ERROR: %s\n", message)
sys.exit()
def parseArguments(argv):
# Default options
options = {'quiet': False, 'x': 0, 'y': 0, 'delay': 3, 'rate': 1, 'help': False}
# Parse arguments and set options
i = 1
while i < len(argv):
try:
# arg was an unmatched value
int(argv[i])
float(argv[i])
handleErr("Invalid argument " + argv[i])
except ValueError:
if argv[i] == "-q" or argv[i] == "--quiet":
# Run in quiet mode, no stdout output
options['quiet'] = True
elif argv[i] == "-c" or argv[i] == "--coords":
# Set Coordinates to start the mouse clicking
if i+2 < len(argv):
try:
# Get coordinates from next args
options['x'] = int(argv[i+1])
options['y'] = int(argv[i+2])
except ValueError:
handleErr("Did not enter integer coordinates")
i += 2 # increment arg index
else:
handleErr("Missing (x,y) coordinates")
elif argv[i] == "-d" or argv[i] == "--delay":
# Set startup delay in seconds
if i+1 < len(argv):
try:
# Get delay value from next arg
options['delay'] = int(argv[i+1])
except ValueError:
handleErr("Did not enter integer delay")
i += 1
else:
handleErr("Missing delay value")
elif argv[i] == "-r" or argv[i] == "--rate":
# Set clicking rate in clicks/second
if i+1 < len(argv):
clicks = 1
try:
# Get rate value from next arg
clicks = int(argv[i+1])
except ValueError:
handleErr("Did not enter int click rate")
options['rate'] = 1.0 / clicks
i += 1
else:
handleErr("Missing rate value")
elif argv[i] == "-h" or argv[i] == "--help":
# Display help menu
options['help'] = True
else:
handleErr("Unknown argument " + argv[i])
i += 1
# end While loop
return options
if __name__ == '__main__':
# Set options from command line arguments
options = parseArguments(sys.argv)
if options['help'] is True:
print("%-25s %s" % ("-c, --coords", "Set integer coordinates to (X, Y)."))
print("%-25s %s" % (" ", "Defaults to (0, 0)."))
print("%-25s %s" % ("-d, --delay", "Set start delay to integer value D."))
print("%-25s %s" % (" ", "Defaults to 3 seconds."))
print("%-25s %s" % ("-r, --rate", "Set integer number of clicks per second."))
print("%-25s %s" % (" ", "Defaults to 1 click per second."))
print("%-25s %s" % ("-q, --quiet", "Start in quit mode."))
print("%-25s %s" % ("-h, --help", "Display this help menu and exit."))
print("\nRuntime Options:")
print("%-25s %s" % ("P", "Toggle the auto clicker."))
print("%-25s %s" % ("Q", "Quit the program."))
else:
# Initialize Autoclicker
clicker = AutoClicker(options['x'], options['y'], options['rate'])
# Print start message
if not options['quiet']:
print("Starting autoclicker at coordinates(%d, %d)" \
% (clicker.x, clicker.y))
# Delay start
for i in range(options['delay'])[::-1]:
print(i+1)
time.sleep(1)
else:
# Delay start
time.sleep(options['delay'])
clicker.start() # Start auto clicking, returns once it stops
if not options['quiet']:
print("Autoclicking complete")