pynput获取鼠标位置及颜色例子(按键精灵仿品)
#encoding=utf-8
from PIL import ImageGrab
from pynput.keyboard import Key,Listener
from pynput import mouse
print("用右ctrl键获取鼠标位置及像素")
filename = 'mouse.txt'
myMouse = mouse.Controller()
i=1
def on_press(key):
if key == Key.ctrl_r:
# 获取当前鼠标光标位置
x, y = myMouse.position
px = ImageGrab.grab().load()
color = px[x, y]
#print("x:%s y:%s color:%s" % (x,y,color))
#s = " x: "+ str(x) +" y: " + str(y) + " color: " + str(color)
s = "".join(["pyautogui.moveTo(",str(x),",",str(y),",duration=0.01)\npyautogui.click()\n"])
with open(filename, 'a') as file_object:
global i
file_object.write(str(i) + s + "\n\n")
i=i+1
else:
print(key)
with Listener(on_press=on_press) as listener:
listener.join()
改进版:
#encoding=utf-8
from pynput import keyboard, mouse
import time
#注意最后鼠标点击关闭程序也会被记录
print("3秒后开始记录鼠标点击")
time.sleep(3)
print("开始")
filename = 'mouse.py'
with open(filename, 'a') as file_object:
pystr="#encoding=utf-8\nimport time,pyautogui\n\ntime.sleep(3)\n\n"
file_object.write(pystr)
myMouse = mouse.Controller()
i=1
def on_mouse_click(x, y, click, pressed):
global i
if click == mouse.Button.left and pressed:
print(i,": left",x," ",y)
s = "".join(["pyautogui.moveTo(",str(x),",",str(y),",duration=0.5) #",str(i),"\npyautogui.click()\n"])
with open(filename, 'a') as file_object:
file_object.write(s +"\n")
i=i+1
if click == mouse.Button.right and pressed:
print(i,": right:",x," ",y)
s = "".join(["pyautogui.moveTo(",str(x),",",str(y),",duration=0.5) #",str(i),"\npyautogui.rightClick()\n"])
with open(filename, 'a') as file_object:
file_object.write(s +"\n")
i=i+1
with mouse.Listener(on_click=on_mouse_click) as mouse_listener:
mouse_listener.join()
参考:https://blog.csdn.net/hidezero/article/details/128151991
https://www.cnblogs.com/yoyo1216/p/16688995.html
https://zhuanlan.zhihu.com/p/431842934
浙公网安备 33010602011771号