资讯专栏INFORMATION COLUMN

Python直接控制鼠标键盘模块 pyautogui

zzzmh / 2558人阅读

摘要:参考文章安装官网介绍可以模拟移动鼠标,单击鼠标,用鼠标拖动,按键,按住键,还可以按键盘热键组合。鼠标双击,其实就是执行两次函数。键盘操作输入文字如果是中文键是复制精确控制键盘按键的按下和释放和鼠标按键非常类似。

参考文章:http://www.chenxm.cc/post/547...
安装

pip install pyautogui

官网:

http://pyautogui.readthedocs.io/en/latest/

github:

https://github.com/asweigart/pyautogui

介绍:
PyAutoGUI可以模拟移动鼠标,单击鼠标,用鼠标拖动,按键,按住键,还可以按键盘热键组合。
基础操作

>>> import pyautogui
# 获取屏幕尺寸
>>> screenWidth, screenHeight = pyautogui.size()
# 获取当前坐标位置
>>> currentMouseX, currentMouseY = pyautogui.position()
# 鼠标移动到坐标为100,150的位置
>>> pyautogui.moveTo(100, 150)
# 鼠标左击
>>> pyautogui.click()
# 鼠标移动10个像素
>>> pyautogui.moveRel(None, 10)  # move mouse 10 pixels down
# 鼠标双击
>>> pyautogui.doubleClick()
>>> pyautogui.moveTo(500, 500, duration=2, tween=pyautogui.easeInOutQuad)  # use tweening/easing function to move mouse over 2 seconds.
# 键盘输入Hello world! 间隔为0.25秒
>>> pyautogui.typewrite("Hello world!", interval=0.25)  # type with quarter-second pause in between each key
# 按键 esc
>>> pyautogui.press("esc")
# shift按下
>>> pyautogui.keyDown("shift")
# 按键左方向键
>>> pyautogui.press(["left", "left", "left", "left", "left", "left"])
# shift弹起
>>> pyautogui.keyUp("shift")
# 组合件 ctrl +c
>>> pyautogui.hotkey("ctrl", "c")

保护措施:
PyAutoGUI函数增加延迟为2.5秒:

import pyautogui
pyautogui.PAUSE = 2.5

当pyautogui.FAILSAFE = True时,如果把鼠标光标在屏幕左上角,PyAutoGUI函数就会产生pyautogui.FailSafeException异常。

import pyautogui
pyautogui.FAILSAFE = True

鼠标操作:
移动

import pyautogui
width, hight = pyautogui.size()
pyautogui.moveTo(width/2, hight/2) # 基本移动
pyautogui.moveTo(200, 200, duration=2) # 移动过程持续2s完成
pyautogui.moveTo(None, 100) # X方向不变,Y方向移动到100
pyautogui.moveRel(-40, 500) # 相对位置移动

拖拽
拖拽的意思是:按下鼠标键并拖动鼠标。PyAutoGUI提供了两个函数:dragTo() 和 dragRel()。它的参数和moveTo() 和 moveRel() 一样。

点击+向下拖动
pyautogui.click(941, 34, button="left")
pyautogui.dragRel(0, 100, button="left", duration=5)

点击

click()函数就是让鼠标点击,默认是单击左键,参数可以设置:
pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button="left")

其中,button属性可以设置成left,middle和right。

pyautogui.doubleClick():鼠标双击,其实就是执行两次click()函数。
pyautogui.rightClick():右击
pyautogui.middleClick():中击
pyautogui.tripleClick(
pyautogui.click(300, 400, button="right") # 包含了move的点击,右键
pyautogui.click(clicks=2, interval=0.25) # 双击,间隔0.25s
双击左键
pyautogui.click(clicks=2)
两次单击之间停留0.25秒
pyautogui.click(clicks=2, interval=0.25)
三击右键
pyautogui.click(button="right", clicks=2, interval=0.25)

鼠标按下和松开两个事件可以分开处理:

pyautogui.mouseDown(x=moveToX, y=moveToY, button="left")
pyautogui.mouseUp(x=moveToX, y=moveToY, button="left")

滚轮
它只接受一个整数。如果值为正往上滚,值为负往下滚。

pyautogui.scroll(-10)

键盘操作
输入文字

pyautogui.click(100, 200)
pyautogui.typewrite("hello world!")
如果是中文键是复制

精确控制键盘
按键的按下和释放 和鼠标按键非常类似。

keyDown():按下某个键
keyUp():松开某个键
press():一次完整的击键,前面两个函数的组合。
pyautogui.press("shift") # 切换输入法的中英文
pyautogui.press(["#", " "]) # press 可以对单个字符或者列表进行操作
pyautogui.press(["c", "h", "e", "n"])
pyautogui.press(["x", "i","n"])
pyautogui.press(["m", "i", "n","g"])
pyautogui.press(" ")
# 陈新明

组合键hotKey

pyautogui.hotkey("shift", "a") # 可以使用组合键,等同于以下代码
"""
pyautogui.keyDown("shift")
pyautogui.keyDown("a")
pyautogui.keyUp("shift")
pyautogui.keyUp("a")

"""
截图

import pyautogui
im1 = pyautogui.screenshot()
im2 = pyautogui.screenshot("my_screenshot.png")
screenshot()需要花费100毫秒

如果你不需要截取整个屏幕,还有一个可选的region参数。你可以把截取区域的左上角XY坐标值和宽度、高度传入截取。

im = pyautogui.screenshot(region=(0, 0, 300 ,400))

读取截图的图片

import pyautogui
pyautogui.locateOnScreen("my_screenshot.png")

原文:http://www.chenxm.cc/post/633...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42104.html

相关文章

  • python-tkinter(7) 实现各种个样的撩妹鼠标拖尾

    摘要:实现各种个样的撩妹鼠标拖尾系统的拖尾已经无法满足我们了,女朋友叫你把鼠标拖尾换成她的照片,让你时时刻刻都可以看见她,这个要求你答不答应。二文艺型拖尾这个拖尾杀伤力不大,侮辱性极强,给自己增加工作。 python-tkinter(7) 实现各种个样的撩妹鼠标拖尾 系统的拖尾已经无法满足我们了...

    luoyibu 评论0 收藏0
  • 警惕AI,我搭建了一个“枪枪爆头”的视觉AI自瞄程序,却引发了一场“山雨欲来”

    摘要:前言前段时间在网上看到警惕外挂我写了一个枪枪爆头的视觉,又亲手杀死了它这个视频,引起了我极大的兴趣。人体关节点对应序号因此如果为了自动瞄准头部实现枪枪爆头,仅需要反馈的坐标点就行了。第二个威胁就是无法被外挂程序检测的隐蔽性。 前言 前段时间在网上看到《警惕AI外挂!我写了一个枪枪爆头的视觉A...

    pingink 评论0 收藏0
  • Windows桌面程序自动化控制之uiautomation模块全面讲解

    摘要:大家好,我是小小明,经过个月断断续续的整理,模块桌面自动化控制的系统教程终于成型出炉了。模块所支持的剪切板操作的功能也远远超过常规的专门用于剪切板复制粘贴的库。很多程序没有实现,所以不支持自动化。 ...

    GT 评论0 收藏0
  • 说我菜?那好,我用Python制作电脑与手机游戏脚本来赢你

    摘要:我发现我的粉丝量涨的很慢,这次厚脸皮要波关注。这次做的是一个小巧的游戏脚本,本质上它可以用于任意的电脑与手机游戏。分析这个游戏是上的别猜百块儿,意思就是让咱们只踩黑块,然后会给我们弹一手音乐。越趋近于说明颜色越黑。 目录 前言 分析(x0) 分析(x1)         那么如何去确定这个像...

    PascalXie 评论0 收藏0
  • Selenium常用方法(Python

    摘要:概述是一款开源的自动化框架,模拟用户操作浏览器的行为,主要用于界面自动化浏览器兼容性测试。将浏览器原生的封装成,作为编程语言与浏览器通信的桥梁,从而达到操作浏览器的目的。 ...

    Aceyclee 评论0 收藏0

发表评论

0条评论

zzzmh

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<