安装

pip install pyautogui

官网:

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'])

# 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, button='left')

pyautogui.mouseUp(x=moveToX, 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', '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')

PyAutoGUI键盘表:

‘enter’(或‘return’或‘\n’)

回车

‘esc’

ESC键

‘shiftleft’,‘shiftright’

左右SHIFT键

‘altleft’,‘altright’

左右ALT键

‘ctrlleft’,‘ctrlright’

左右CTRL键

‘tab’(‘\t’)

TAB键

‘backspace’,‘delete’

BACKSPACE、DELETE键

‘pageup’,‘pagedown’

PAGE UP和PAGE DOWN键

‘home’,‘end’

HOME和END键

‘up’,‘down’,‘left’,‘right’

箭头键

‘f1’,‘f2’,‘f3’….

F1…….F12键

‘volumemute’,‘volumedown’,‘volumeup’

有些键盘没有

‘pause’

PAUSE键

‘capslock’,‘numlock’,‘scrolllock’

CAPS LOCK,NUM LOCK,和SCROLL LOCK键

‘insert’

INS或INSERT键

‘printscreen’

PRTSC或PRINT SCREEN键

‘winleft’,‘winright’

Win键

‘command’

Mac OS X command键

python控制鼠标_Python直接控制鼠标键盘模块 pyautogui相关推荐

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

    Python直接控制鼠标键盘模块 pyautogui 参考文章:http://www.chenxm.cc/post/547.html 安装 pip install pyautogui 官网: http ...

  2. python控制鼠标点击标准模块_Python直接控制鼠标键盘模块 pyautogui

    pip install pyautogui 官网: http://pyautogui.readthedocs.io/en/latest/ github: https://github.com/aswe ...

  3. python如何控制浏览器_Python+selenium 控制浏览器

    控制浏览器 driver.forward() # 浏览器前进 driver.back() # 浏览器后退 driver.refresh() # 刷新页面 driver.set_window_size( ...

  4. python getopt使用_Python命令行参数解析模块getopt使用实例

    这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...

  5. python方向键控制角色_python方向键控制上下左右代码

    本文所示代码实现python编程方向键控制图片上下左右,我们首先看下演示结果. 演示: 实例代码: bif="1.jpg" mif="2.jpg" import ...

  6. python tracer函数_Python流程控制常用工具和函数定义

    在我们的工作中,我们使用ddagent ver.5作为收集工具,收集和报告托管服务器的性能指标,并对ddagent进行一定程度的定制.经过多次功能迭代,发现一批在线运行时间长的托管服务器占用了太多内存 ...

  7. python教程99--控制鼠标键盘模块 pyautogui

    1.安装: pip install pyautogui 官方网站: pyautoguihttp://pyautogui.readthedocs.io/en/latest/ 2.介绍: PyAutoGU ...

  8. python流程控制编写_Python 流程控制

    ### if 语句 也许最著名的语句是 if 语句了. 例如: ```python >>> x = int(input("Please enter an integer: ...

  9. python哨兵循环_Python哨兵控制循环

    我想知道是否有人能帮我指出正确的方向!我是个初学者,完全迷路了.我试着做一个哨兵控制的循环,要求用户"输入支票金额",然后询问"这张支票有多少用户".在它询问用 ...

  10. python多线程控制暂停_python多线程控制

    利用wait的阻塞机制, 就能够实现暂停和恢复了, 再配合循环判断标识位, 就能实现退出了 #!/usr/bin/env python # coding: utf-8 import threading ...

最新文章

  1. c语言移数有n个整数使其,有N个整数,使其前面各数顺序向后移动M个位置,最后M个数变成前面的...
  2. 四、Netty 实现心跳机制与断线重连
  3. Python中json模块的使用,以及json.loads()和json.dumps()的区别
  4. u-boot.lds 文件分析
  5. Junit 与 powermock 结合执行过程源码阅读
  6. react父子组件通信案例
  7. java struts1_struts1.x
  8. where 泛型类型约束 default 关键字
  9. 诗与远方:无题(八十五)- 无字天书
  10. mybais逆向工程快速生成实体和基本xml
  11. 图像处理几种Trick
  12. 计算机考试打字软件,书记员考试必备!打字练习软件及电脑练习打字快速提高方法?...
  13. 企业邮箱登录入口:企业邮箱oa管理系统
  14. 如何在企业微信网页授权链接中加入自定义参数
  15. Alphabetic Removals(水题)
  16. 达梦MPP 环境搭建
  17. 实验五 八段数码管显示(红绿灯)
  18. Electron 初体验,用 js 搭建桌面应用程序
  19. 风吹雪支付系统易支付去后台验证版本代理系统
  20. 如何零基础开始学编程

热门文章

  1. 把路由器配置成DHCP服务器,并确保路由功能。
  2. 双向lstm-crf源码的问题和细微修改
  3. 我对javascript面向对象编程的理解---------继承
  4. Tutorials 使用窗口功能分析信息
  5. 光猫上网问题 看我如何解决
  6. Canvas里的globalCompositeOperation
  7. 下周开始读《Principles of Program Analysis》
  8. 我的PCB职业,请大家多指教!
  9. 在Ubuntu中搭建NFS服务器
  10. unity3d多个版本共存