pyautogui自动点击无敌版(按键记录坐标,含注释,按需修改)
#在原代码上优化及改bug,原文链接已丢失,仅供分享
import pyautogui as pa
import keyboard
import ast
pos = []
def add(x):
pos.append(x)
print("{0} successfully added".format(x))
def add_pos():
while True:
# 按ctrl触发事件,保存位置,注意保存完后再按一下ctrl
if keyboard.read_hotkey() == 'ctrl':
add(pa.position())
else:
# 按其他任意键停止录入,将信息写入txt
f = open("data.txt", 'w')
for i in pos:
f.write(str(i))
if i != pos[-1]:
f.write('\n')
f.close()
break
def get_pos():
f = open('data.txt', 'r')
for i in f.read().split('\n'):
pos.append(i)
res = [ast.literal_eval(s) for s in pos]
f.close()
return res
def nclick(): # 顺序点击
for i in pos:
pa.click(eval(i), duration=0.2)
def mclick(): # 点击一次,循环中使用
pa.click(eval(pos[-1]), duration=0.3)
def click():
pos = get_pos()
# 顺序点击
nclick()
# mclick点击次数
count = 0
# 循环点击
while (pa.position() == pos[-1]):
count = count + 1
# 重复点击最后一个坐标,任意移动鼠标结束,俺用来给b站刷点赞
mclick()
print('exit successfully,count =', count)
if __name__ == '__main__':
# 第一次运行该函数,运行后鼠标移到正确位置后按ctrl记录信息写入txt文件
add_pos()
# 第二次运行该函数,pos从文件中读位置,nclick顺序点击,mclick重复点击
# click()