python的扩展控制鼠标

2023-11-14

1.使用资料

PyAutoGUI 简介
今天要介绍的工具就是 PyAutoGUI,看到这个名字,就能猜到它的作用,无非用 Python 自动处理图形界面的操作,的确是这样,你可以使用编程的方式来控制电脑的鼠标和键盘。

它有两个优点:

跨平台,支持 Python2 和 Python3,支持 Windows,MacOS,Linux。

易使用,接口简单不需要太多知识就可以学会,会操作鼠标和键盘就可以。

缺点:

需要定位鼠标,不能复制到多台电脑,换台电脑可能因为尺寸不同就不能执行了。

PyAutoGUI 安装
PyAutoGUI 支持 pip 进行安装

pip install pyautogui
如果是 Windows 不需要再安装其他依赖。

如果是 Mac 还要安装 pyobjc:

pip3 install pyobjc-core
pip3 install pyobjc
如果是 Linux 还需要安装下这些:

sudo apt-get scrot
sudo apt-get install python-tk
sudo apt-get install python3-dev
无论哪一个操作系统都要确保 Pillow 已经安装。如果是 Linux,你还需要安装额外的库来确保 Pillow 中

2.window下安装

更新pip
D:\python_allpro\test2\venv\Scripts\python.exe -m pip install --upgrade pip

pip install pyautogui

3.核心使用代码

代码开始:

import pyautogui

# 1、鼠标移动
# pyautogui.moveTo(100, 150)  # 绝对位置
# pyautogui.moveRel(20, 10) #相对位置
# pyautogui.moveTo(500, 500, duration=2, tween=pyautogui.easeInOutQuad)  # 2秒带动画移动到500,500

#2、鼠标点击
# pyautogui.click()  #单击
# pyautogui.click(x=100, y=200) #
# pyautogui.doubleClick()  #双击
# pyautogui.rightClick()  #单击鼠标右键
# pyautogui.middleClick() #单击鼠标中键
# pyautogui.click(button='right', clicks=3, interval=0.25)



#3、鼠标拖动
# pyautogui.dragTo(x,y[,duration=t)
# pyautogui.dragRel(200,200, duration=0.5)  #按住左键移动

#4、鼠标滚动
# pyautogui.scroll(-10) #/ -10  # 正数向上/下滚动
# pyautogui.hscroll(10)  #/ -10 #  向右/左滚动

# 5.键盘操作:
# pyautogui.typewrite('Hello world!', interval=0.25) #模拟输入
# pyautogui.typewrite(['enter']) #输入enter
# pyautogui.typewrite(['a','b','left','left','X','Y']) # XYab,点击ab后,点击键盘左键2次,再次输入XY
# pyautogui.press('esc') #点击键盘最左上角的esc键
# pyautogui.keyDown('shift')
# pyautogui.press(['left', 'left', 'left', 'left', 'left', 'left']) #连续按键left
# pyautogui.keyUp('shift')
# pyautogui.hotkey('ctrl', 'c')   # 组合键

# 6.消息弹窗提醒
# pyautogui.alert('This is an alert box.')
# pyautogui.confirm('Shall I proceed?')
# pyautogui.confirm('Enter option.', buttons=['A', 'B', 'C'])
# pyautogui.prompt('What is your name?')
# pyautogui.password('Enter password (text will be hidden)')


# 屏幕操作
# 0 截取整个屏幕
# import pyautogui

# im1 = pyautogui.screenshot()
# im1.save('my_screenshot.png')
# im2 = pyautogui.screenshot('my_screenshot2.png')

## 1、截取部分屏幕
# im = pyautogui.screenshot(r'C:\screenshot.png', region=(0, 0, 300, 400))  # 截屏并设置保存图片的位置和名称

# 2、 匹配屏幕所有与目标图片的对象,可以用for循环和list()输出
# pyautogui.locateAllOnScreen(r'C:\region_screenshot.png')
# for pos in pyautogui.locateAllOnScreen(r'C:\\region_screenshot.png'):
#     print(pos)

# 3、获取屏幕点色彩属性值
# pix = pyautogui.screenshot().getpixel((100, 200))  # 0,1,2=rgb
# print(pix)

# 4、灰度值匹配
# color1 = pyautogui.pixelMatchesColor(100, 200, (205, 255, 245), tolerance=10)
# print(color1)




# 定位操作
# 1、获取屏幕宽高
# screenWidth, screenHeight = pyautogui.size()
# print(screenWidth)
# print(screenHeight)

# 屏幕左上开始为(0,0)
# 2、获取当前鼠标位置
# currentMouseX, currentMouseY = pyautogui.position()
# print(currentMouseX)
# print(currentMouseY)

# 3、根据图片定位在图片在屏幕上的中点
# x, y = pyautogui.locateCenterOnScreen(r'C:\screenshot.png')

代码结束。

4.核心简单使用(这个满足大部分的使用)

import time
import random
import pyautogui as pag
import webbrowser

pag.click(x=446, y=333)#定位 (点击坐标,可以使用微信截屏来定位位置)
pag.write(‘120’, interval=0.2)#输入数据

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python的扩展控制鼠标 的相关文章

随机推荐

  • 破解selenium封禁--去哪儿酒店爬虫

    使用selenium遇到封禁 selenium是我用来破解一些js渲染比较多的页面的神器 但是最近 在抓取一些网站时 遇到了让人头皮发麻的事情 selenium出问题了 在测试去哪儿酒店时 遇到了加载不出数据的问题 如下图 去哪儿会一直很努
  • linux配置nginx下载包安装的方式

    0 先卸载nginx 使用yum来卸载 yum remove nginx 查询所有nginx相关文件 逐一删除 whereis nginx rm rf 文件名或目录 1 安装编译环境 yum y install make zlib zlib
  • MQTT 连接优化指南

    博主猫头虎 带您 Go to New World 博客首页 猫头虎的博客 面试题大全专栏 文章图文并茂 生动形象 简单易学 欢迎大家来踩踩 IDEA开发秘籍专栏 学会IDEA常用操作 工作效率翻倍 100天精通Golang 基础入门篇 学会
  • 华为OD机试 - 数组去重和排序(Java)

    题目描述 给定一个乱序的数组 删除所有的重复元素 使得每个元素只出现一次 并且按照出现的次数从高到低进行排序 相同出现次数按照第一次出现顺序进行先后排序 输入描述 一个数组 输出描述 去重排序后的数组 用例 输入 1 3 3 3 2 4 4
  • redis-缓存架构-问题列表(四)

    1 缓存架构 高并发 高可用 解决方案 问题 1 如何让redis集群支撑几十万QPS高并发 99 99 高可用 TB级海量数据 企业级数据备份与恢复 redis企业级集群架构 2 如何支撑高性能以及高并发到极致 同时给缓存架构最后的安全保
  • Java如何将字符串放进字符串数组中(亲测)

    String str1 aaa String str2 bbb String str3 ccc List
  • oracle报错文件损坏,oracle 控制文件损坏处理

    一 故障模拟 控制文件损坏 发现关闭不了 强制关闭 故障恢复 发现已经执行到mont阶段 因为这个不依靠控制文件 进入整段日志 cd u01 app oracle diag rdbms orcl orcl trace 查看alert orc
  • Idea开启Run DashBoard配置

    找到 idea文件下的workspace xml 并找到RunDashboard
  • LeetCode:二叉搜索树的属性、修改与构造(12道经典题目)

    LeetCode 二叉搜索树的属性 修改与构造 12道经典题目 本文带来与二叉搜索树的属性 修改与构造有关的经典题目 主要实现是C 700 二叉搜索树中的搜索 98 验证二叉搜索树 530 二叉搜索树的最小绝对差 501 二叉搜索树中的众数
  • Java_Could not find resource SqlMapConfig.xml

    目录结构如图 解决办法 选中目录config 右键build path gt use as source folder
  • Linux中如何设置静态IP

    1 打开虚拟机编辑 gt 虚拟网络编辑器 选择VMnet8 设置子网IP 子网掩码 网关 点击确定 2 按照以下标注修改网卡的配置文件 gt 重启网络 gt 查询IP root centos7 vim etc sysconfig netwo
  • ECCO首家全球旗舰店在上海正式开业;海立马瑞利全球总部启动运营;西门子医疗完成收购瓦里安

    一周企业资讯看点 ECCO首家全球旗舰店正式开业 海立马瑞利全球总部启动运营 赛诺菲中国首个全球研究院落成启用 西门子医疗完成收购瓦里安 温德姆酒店集团计划今年大中华区新开超过100家酒店 Club Med丽江度假村预计将于今年秋天开业 三
  • Windows下在虚拟机VMware中安装Ubuntu 18.04(一个安装了很多次Ubuntu的详细步骤和经验,避免踩不必要的坑)

    我安装了ubuntu很多次 以前在网上学习了很多版本的安装步骤 以前经验不足 出现了很多问题 比如说 学习过程中出现内存或磁盘不足 而且有时候无法扩展或扩展很麻烦 这很浪费时间和降低学习效率 甚至Ubuntu有时会很卡 启动慢 我觉得最严重
  • ag-grid基本配置

    columnDefs headerName 序号 必填 显示在表头的文本 width 50 宽度 minWidth 300 最小宽度 多数情况是在自适应时 设置使用 maxWidth 300 最大宽度 多数情况是在自适应时 设置使用 cel
  • 设计模式(一) 工厂方法模式

    介绍 关于设计模式 大家可能已经有很多了解了 因此这里直接开始吧 首先来介绍一下工厂方法模式 它是一种创建型模式 在设计模式 可复用面向对象软件的基础中对工厂方法由如下的解释 工厂方法模式的实质是 定义一个创建对象的接口 但让实现这个接口的
  • Intellij IDEA中使用Protobuf的正确姿势

    1 proto文件语法高亮显示 需要安装Protobuf Support插件 依次点击Intellij中的 File gt Settings gt Plugins gt Browse repositories 如下所示 输入Protobuf
  • eclipse中将项目打包成jar,并启动

    第一种 利用eclipse中自带的export功能 第一种方法分两种情况先来看第一种情况 没有引用外部jar的项目打包 步骤一 右键点击项目选择导出 export 选择java gt jar文件 不是选择可运行jar文件 步骤二 选择你要导
  • python3.7 解决古代计算题--牛刀小试

    首先来看下题目 今有物不知其数 三三数之剩二 五五数之剩三 七七数之剩二 问物几何 第一代 print 今有物不知其数 三三数之剩二 五五数之剩三 七七数之剩二 问物几何 n number int input 请输入你认为符合条件的数字 i
  • 【计组笔记-5】详细测试c++中类型转换的溢出截断处理

    计组笔记 5 详细测试c 中类型转换的溢出截断处理 1 将小数赋值给float 2 将整数赋值给float 3 将整数赋值给int 3 1 算术溢出 3 2 非算术溢出 等于32位 3 3 非算术溢出 大于32位 4 将小数赋值给int 5
  • python的扩展控制鼠标

    1 使用资料 PyAutoGUI 简介 今天要介绍的工具就是 PyAutoGUI 看到这个名字 就能猜到它的作用 无非用 Python 自动处理图形界面的操作 的确是这样 你可以使用编程的方式来控制电脑的鼠标和键盘 它有两个优点 跨平台 支