最近在开发基于模拟器的微信自动添加好友工具时,需要获取模拟器中相应按钮,在当前屏幕中的X、Y轴坐标点。先前都是通过“Ctrl+Alt+A”截屏的方式 获取。如下图红框部分所示:
由于需要做成通用工具,而且截屏的方式不易操作。所以想通过直接获取鼠标在屏幕中的X、Y坐标点的方式来处理,这样就可以把工作做成傻瓜式,方便操作。
获取鼠标的实时位置(X、Y周坐标)主要使用Python的pyautogui第三方库。下面是处理步骤:
第一步:Python环境
Python3.6+
第二步:安装pyautogui库
使用万能的:pip install pyautogui
安装成功后显示如下图所示:
可以通过命令行的方式验证实际安装情况,如果出现如下图所示情况,则表明安装成功。
第三步:实例DEMO
# -*- encoding: utf-8 -*-
import time, os
import pyautogui as pag
try:
while True:
print('Press Ctrl-C to end')
screenWidth, screenHeight = pag.size()#获取屏幕的尺寸
x, y = pag.position() #返回鼠标的坐标
print('Screen size: (%s %s), Position : (%s, %s)' % (screenWidth, screenHeight, x, y)) # 打印坐 标
time.sleep(1) #每个1s中打印一次 , 并执行清屏
os.system('cls') #执行系统清屏指令
except KeyboardInterrupt:
print('end')
最后成功运行时,获取的鼠标坐标如下如所示:
pyautogui 其他常用函数
moveTo(x, y) # 将鼠标移动到指定的 x y 坐标 .
moveRel(xOffset, yOffset) # 相对于当前位置移动鼠标 .
dragTo(x, y) # 按下左键移动鼠标 .
dragRel(xOffset, yOffset) # 按下左键 , 相对于当前位置移动鼠标 .
click(x, y, button) # 模拟点击 (默认是左键) .
rightClick() # 模拟右键点击。
middleClick() # 模拟中键点击。
doubleClick() # 模拟左键双击。
mouseDown(x, y, button) # 模拟在 x、y 处按下指定鼠标按键。
mouseUp(x, y, button) # 模拟在 x、y 处释放指定键。
scroll(units) # 模拟滚动滚轮。正参数表示向上滚动, 负参数表示向下滚动。
typewrite(message) # 键入给定消息字符串中的字符。
typewrite([key1, key2, key3]) # 键入给定键字符串。
press(key) # 按下并释放给定键。
keyDown(key) # 模拟按下给定键。
keyUp(key) # 模拟释放给定键。
hotkey([key1, key2, key3]) # 模拟按顺序按下给定键字符串, 然后以相反的顺序释放。
screenshot() # 返回屏幕快照的 Image 对象