通过Python,如何获取鼠标在屏幕上的X、Y轴坐标点

十点数据 1年前 ⋅ 7552 阅读

最近在开发基于模拟器微信自动添加好友工具时,需要获取模拟器中相应按钮,在当前屏幕中的X、Y轴坐标点。先前都是通过“Ctrl+Alt+A”截屏的方式 获取。如下图红框部分所示:

430072E4-74E3-4ed5-BC75-F5AC52567302.png

由于需要做成通用工具,而且截屏的方式不易操作。所以想通过直接获取鼠标在屏幕中的X、Y坐标点的方式来处理,这样就可以把工作做成傻瓜式,方便操作。

获取鼠标的实时位置(X、Y周坐标)主要使用Python的pyautogui第三方库。下面是处理步骤:

第一步:Python环境

Python3.6+

第二步:安装pyautogui库

使用万能的:pip install pyautogui

安装成功后显示如下图所示:

pyautogui.png

可以通过命令行的方式验证实际安装情况,如果出现如下图所示情况,则表明安装成功。

yanzheng.png

第三步:实例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')

最后成功运行时,获取的鼠标坐标如下如所示:

坐标.jpg

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 对象

全部评论: 0

    我有话说: