700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python实现按键精灵找色点击功能 使用pywin32和Pillow库

python实现按键精灵找色点击功能 使用pywin32和Pillow库

时间:2021-06-01 02:01:40

相关推荐

python实现按键精灵找色点击功能 使用pywin32和Pillow库

Python图片处理模块PIL(pillow)

pywin32的主要作用

1.捕获窗口;2.模拟鼠标键盘动作;3.自动获取某路径下文件列表;4.PIL截屏功能

找色点击功能思路:

抓取当前屏幕快照,指定一个坐标和颜色,如果坐标的颜色符合,则点击坐标.

1.抓取当前屏幕快照ImageGrab.grab()返回一个模式为“RGB”的图像.

2.方法im.load()返回一个用于读取和修改像素的像素访问对象

3.用pywin32操作鼠标键盘

王者荣耀自动刷冒险模式源码送上:

由于分辨率不同,要修改相应坐标和颜色才能正常在自己电脑上运行

/janyroo/pvpkey

import win32gui, win32api, win32con,timefrom win32api import GetSystemMetricsfrom PIL import ImageGrabdef PilImage(x,y):a, b = GetSystemMetrics(0), GetSystemMetrics(1) # Python获取屏幕分辨率im = ImageGrab.grab((0,0,a,b))#与坐标不同,这里0,0,1,1是一个像素,而坐标是从0~1919的pix = im.load()return pix[x,y]def DisplaySize():return GetSystemMetrics(0), GetSystemMetrics(1) # Python获取屏幕分辨率def LeftClick(x, y): # 鼠标左键点击屏幕上的坐标(x, y)win32api.SetCursorPos((x, y)) # 鼠标定位到坐标(x, y)# 注意:不同的屏幕分辨率会影响到鼠标的定位,有需求的请用百分比换算win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0) # 鼠标左键按下win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0) # 鼠标左键弹起# win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN + win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0) # 测试def PressOnce(x): # 模拟键盘输入一个按键的值,键码: xwin32api.keybd_event(x, 0, 0, 0)'''# 测试a, b = DisplaySize()print(a,b)LeftClick(30, 30) # 点击PressOnce(13) # EnterPressOnce(9) # TABprint(PilImage(80,546))'''# SetCursorPos', 'No error message is available' 用管理员身份运行pycharmif __name__=="__main__":jisu=0ltime=0ntime=0time.sleep(5)print(PilImage(875, 573))print(PilImage(908,323))print(PilImage(1050, 635))print(PilImage(914,486))while 1:if PilImage(875, 573)==(220, 154, 39):LeftClick(875, 573)jisu += 1ntime = time.time()-ltimeltime = time.time()print("刷了第%d次,获得%d经验,用时%d秒" % (jisu,jisu*82,ntime))elif PilImage(908,323)==(26, 35, 101):LeftClick(908,323)elif PilImage(1050,635)==(216, 125, 26):LeftClick(1050,635)elif PilImage(1061,138)==(48, 131, 205):LeftClick(1061,145)elif PilImage(1061,138)==(46, 125, 197):LeftClick(1061,145)elif PilImage(914,486)==(196,39,80):LeftClick(914,486)else:passtime.sleep(5)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。