把握盘算机自动化:PyAutoGUI库具体教程(最全使用方法,每行代码都有注释 ...

打印 上一主题 下一主题

主题 1001|帖子 1001|积分 3005

这篇博客主要介绍了怎样使用Python库pyAutoGUI举行盘算机自动化行为操作。文章起首介绍了pyAutoGUI库的概括和安装方法。接下来,具体解说了操作前须要相识的屏幕分辨率与尺寸,暂停操作,以及故障掩护功能的使用方法。在鼠标操作部门,具体剖析了鼠标的移动、获取位置、拖拽、点击以及单击分布操作。键盘操作部门,讨论了怎样举行输入字符、按键以及热键操作。别的,文章还提到了使用消息框显示信息,可设置一个或多个按钮,及带有文本输入框和密码输入框的消息框使用方法。末了,文章详述了怎样举行屏幕截图并在指定区域内截屏,以及图片定位的方法。整篇文章旨在帮助读者理解和把握使用pyAutoGUI库举行盘算机自动化操作的方法。
一、pyAutoGUI 概括

pyAutoGUI是一个用于自动化盘算机行为的Python库。它可以用来操作鼠标和键盘,模仿人类的输入方式,比如移动鼠标、点击按钮、输入文本等。pyAutoGUI还可以用来开发自动化工具,比如自动回复谈天呆板人、自动游戏挂机等。

二、pyAutoGUI 库安装

pyAutoGUI的下载代码如下:
打开命令行窗口输入以下代码即可
  1. pip install pyautogui
复制代码
或者,你可以直接从PyCharm上下载,教程如下:Python基础第八篇(Python非常处理,模块与包)
三、pyAutoGUI 操作前置知识

1.屏幕分辨率与尺寸


为方便编写代码,pyautogui 接口用起了别名“pg”
  1. import pyautogui as pg
  2. import time
  3. # 获取屏幕尺寸
  4. # 元组类型的返回值
  5. screen_width, screen_height = pg.size()
  6. # 获取屏幕宽高
  7. print("屏幕宽度:", screen_width)
  8. print("屏幕高度:", screen_height)
复制代码
2.暂停操作

  1. #暂停操作,全局暂停,局部暂停
  2. #全局暂停是指在程序中暂停所有操作(进行一行改代码,停一次,一般写在接口下面先执行),局部暂停是指在程序中暂停某个操作
  3. #--------全局暂停--------
  4. #默认是0.1  浮点型  单位是秒
  5. pg.PAUSE = 1.0
  6. #--------局部暂停--------
  7. #默认是0  浮点型  单位是秒
  8. time.sleep(2)
复制代码
3.故障掩护功能

pyAutoGUI 有一个名为“故障掩护”的功能,当鼠标或键盘操作失败时,这个功能可以防止步调崩溃。要启用故障掩护功能,可以在使用pyAutoGUI之前导入pyautogui.PAUSE:
插入
  1. import pyautogui as pg
  2. pg.PAUSE = 1
复制代码
这样,当pyAutoGUI碰到错误时,它会等候1秒后再尝试执行操作。你可以根据须要调解PAUSE的值。
或者在pyAutoGUI步调执行过程中想要制止,可以快速将鼠标移动到屏幕的四个角以中止步调,默认存在的。不想用可在pyAutoGUI代码执行之前插入
  1. pg.failsafe=false
复制代码
四、鼠标操作

1.鼠标移动操作

  1. #移动鼠标到指定位置
  2. #duration是指所用时间,默认是0.25  浮点型  单位是秒
  3. pg.moveTo(100, 100, duration=1)
  4. #移动鼠标到相对位置
  5. pg.move(100, -100, duration=1)
复制代码
2.获取鼠标位置的坐标值

  1. # 获取鼠标位置的坐标值
  2. mouse_x, mouse_y = pg.position()
  3. print("鼠标位置的坐标值:", mouse_x, mouse_y)
  4. #检测指定坐标是否在屏幕上
  5. print("(100, 100)坐标是否在屏幕上:", pg.onScreen(100, 100))
复制代码
3.鼠标拖拽操作

  1. #鼠标拖拽操作
  2. #默认左键,左键 left,右键 right,中键 middle
  3. #绝对拖拽,指拖拽到那个位置
  4. pg.dragTo(x=100, y=-100, duration=0.5, button='left')
  5. #相对拖拽,相对于当前位置拖拽
  6. pg.drag(xOffset=100, yOffset=100, duration=0.5, button='right')
复制代码
4.鼠标点击操作

  1. #鼠标点击操作
  2. #单击
  3. #button:默认左键,左键 left,右键 right,中键 middle
  4. #clicks:点击次数,默认是1次
  5. #interval:每次点击间隔时间,默认是0
  6. #duration:持续时间,默认是0
  7. pg.click(x=90, y=100,clicks=2,interval=0,duration=0, button='left')
  8. # 双击
  9. #button:默认左键,左键 left,右键 right,中键 middle
  10. pg.doubleClick(x=90, y=100, duration=0, button='left')
复制代码
5.鼠标单击分布操作

  1. #单击分布操作
  2. #按下鼠标键位
  3. pg.mouseDown(button='left')
  4. #释放鼠标键位
  5. pg.mouseUp(button='left')
复制代码
五、键盘操作

1.输入字符

  1. # 键盘操作
  2. #输入字符
  3. #messge:想要输入的字符
  4. #interval:每次输入间隔时间,默认是0
  5. #不能直接输入中文,需要使用unicode编码
  6. #输入时应先使输入框获取焦点,否则无法输入(可以先单击一下)
  7. pg.write("Hello, World!",interval=0.2)
复制代码
2.按键操作

  1. #按键操作
  2. #presses:按键的次数,默认是1次
  3. #interval:每次按键间隔时间,默认是0
  4. pg.press('enter',presses=2,interval=0.2)
复制代码
3.热键操作(组合键)

  1. #热键操作
  2. #interval:每次按键间隔时间,默认是0
  3. pg.hotkey('ctrl','a',interval=0.2)
复制代码
常用按键
  1. # 所有按键的字符串标识如下
  2. print(pyautogui.KEYBOARD_KEYS)
  3. # 输出:
  4. [
  5. '\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
  6. 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'accept', 'add', 'alt', 'altleft', 'altright', 'apps',
  7. 'backspace', 'browserback', 'browserfavorites', 'browserforward', 'browserhome', 'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20', 'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja', 'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail', 'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack', 'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn', 'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator', 'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab', 'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen', 'command', 'option', 'optionleft', 'optionright'
  8. ]
  9. + 'Add' - 加号键("+")通常用于添加或增加操作。
  10. + 'Alt' - 通常与键盘上的 "Alt" 键相对应,它是一种常用的快捷键,可以用于访问特殊功能或菜单。
  11. + 'Altleft' - 这个单词通常与键盘上的 "Alt" 键左边的部分相对应,也是用于访问特殊功能或菜单。
  12. + 'Altright' - 这个单词通常与键盘上的 "Alt" 键右边的部分相对应,也是用于访问特殊功能或菜单。
  13. + 'Apps' - 右键菜单
  14. + 'Backspace' - 这个单词通常与键盘上的 "Backspace" 键相对应,用于删除前一个字符或命令。
  15. + 'Browserback' - 这个单词通常与浏览器相关的快捷键相对应,用于返回浏览器的上一个页面。
  16. + 'Browserfavorites' - 这个单词通常与浏览器相关的快捷键相对应,用于访问浏览器的收藏夹。
  17. + 'Browserforward' - 这个单词通常与浏览器相关的快捷键相对应,用于前进到浏览器的一个页面。
  18. + 'Browserhome' - 这个单词通常与浏览器相关的快捷键相对应,用于导航到浏览器的首页。
  19. + 'Browserrefresh' - 这个单词通常与浏览器相关的快捷键相对应,用于刷新当前页面。
  20. + 'Browsersearch' - 这个单词通常与浏览器相关的快捷键相对应,用于在浏览器中执行搜索操作。
  21. + 'Browserstop' - 这个单词通常与浏览器相关的快捷键相对应,用于停止加载当前页面。
  22. + 'Capslock' - 这个单词通常与键盘上的 "Capslock" 键相对应,用于锁定或解锁大写字母输入。
  23. + 'Ctrl' - 这个单词通常与键盘上的 "Ctrl" 键相对应,用于执行各种控制命令或组合键操作。
  24. + 'Ctrlleft' - 这个单词通常与键盘上的 "Ctrl" 键左边的部分相对应,也是用于执行各种控制命令或组合键操作。
  25. + 'Ctrlright' - 这个单词通常与键盘上的 "Ctrl" 键右边的部分相对应,也是用于执行各种控制命令或组合键操作。
  26. + 'Decimal' - 这个单词通常与键盘上的 "Decimal" 或 "." 键相对应,用于输入小数点或十进制数字。
  27. + 'fn' - "fn" 是一个特殊的键盘功能键,通常在笔记本电脑和一些特定的键盘布局中找到。它用于配合其他按键使用,以实现一些特定的功能,如调节亮度、音量等。
  28. + 'home' - "home" 对应的按键是键盘上的 "Home" 键,通常用于快速导航到页面的顶部或文本的开头。
  29. + 'insert' - "insert" 对应的按键是键盘上的 "Insert" 键,用于插入文本或数据。
  30. + 'left', 'right', 'up', 'down' - 这些方向键对应的按键分别是 "Left Arrow"、"Right Arrow"、"Up Arrow" 和 "Down Arrow"。它们通常用于控制光标的位置。
  31. + 'num0' 到 'num9' - 这些数字键对应的按键是从 "0" 到 "9"。它们用于输入数字和进行数学运算。
  32. + 'numlock', 'scrolllock', 'select', 'separator', 'tab' - 这些都是特殊的锁定键或其他功能键,通常用于控制光标移动、滚动页面、选择文本等操作。
  33. + 'space', 'return' - "Space" 键对应的按键是空格键,用于在文本中插入空格。"Return" 键对应的按键是回车键,用于换行或确认输入。
  34. + 'win', 'winleft', 'winright' - 这些是特定的功能键,通常用于操作系统中的窗口控制和菜单操作。"Win" 键对应的按键通常是 Windows 徽标键(通常是带有 Windows 标志的按键)。"Winleft" 和 "Winright" 是左右 Windows 功能键的称呼,但它们并不对应键盘上的标准按键
复制代码
六,消息框

1.可以设置一个button

  1. #消息框
  2. #title:标题
  3. #text:文本
  4. # button:按钮,默认是OK
  5. #返回值:默认是OK
  6. arr1 = pg.alert(title='Hello, World!',text='没钱只能当牛马',button='ok')
  7. print(arr1)
复制代码
2.可以设置多个button

  1. #可以设置多个button
  2. #返回值:返回用户点击的按钮
  3. arr2 = pg.confirm(title='Hello, World!',text='没钱只能当牛马',buttons=['ok','cancel'])
  4. print(arr2)
复制代码
3.自带文本输入框的消息框

  1. #自带文本输入框的消息框
  2. #返回值:返回用户输入的内容
  3. #文本输入框没字返回:None
  4. arr3=pg.prompt(title='Hello, World!',text='没钱只能当牛马',default='请您输入:')
  5. print("您输入的内容是:"+arr3)
复制代码
4.自带密码的文本输入框的消息框

  1. #自带密码的文本输入框的消息框
  2. #返回值:返回用户输入的密码
  3. #密码没字返回:None
  4. arr4=pg.password(title='Hello, World!',text='没钱只能当牛马',default='请您输入:',mask='*')
  5. print("您输入的密码是:"+arr4)
复制代码
七、屏幕截图

1.截全屏

  1. #屏幕截图
  2. #imageformat:截图保存的格式,默认是png
  3. #region:截图的范围,默认是整个屏幕
  4. # 截取全屏 在1920 x 1080屏幕上,screenshot()函数大约需要100毫秒-不快但不慢。
  5. # 截取全屏,并以图片保存
  6. pg.screenshot("E:\\pythonDemo\\python_2024\\all.png")
复制代码
2.指定区域内截屏

  1. #指定区域内截屏
  2. #region:截图的范围,默认是整个屏幕 : [开始位置x,开始位置y,x扩展的分辨率,y扩展的分辨率]
  3. pg.screenshot("E:\\pythonDemo\\python_2024\\all2.png",region=[100,100,500,500])
复制代码
3.图片定位

  1. #图片定位
  2. #定位到的图片的坐标(从左到右,从上到下)
  3. #image:图片路径
  4. #confidence:定位精度,默认是0.8
  5. #count:定位到的图片数量,默认是1
  6. #返回图片中心点
  7. pg.locateCenterOnScreen("E:\\pythonDemo\\python_2024\\Google_tubiao.png",confidence=0.1)
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表