Day 22 : PyAutoGUI,自动控制滑鼠跟键盘!

今天来讲讲PyAutoGUI这个套件好了,这个套件可以帮助你写脚本,可以让滑鼠以及键盘自动化,就不用人力慢慢按了。
第一步还是安装以及导入套件啦

pip install pyautogui
import pyautogui
  • pyautogui.position() : 这个函式用来判断滑鼠目前位置
print(pyautogui.position())

https://ithelp.ithome.com.tw/upload/images/20211005/20138060CIJSVWiVbq.png
为甚麽有负的,因为我是双萤幕(

  • pyautogui.size() : 判断萤幕解析度,这应该没什麽好讲的。

滑鼠控制

  • pyautogui.moveTo() : 这个函式可以用来移动滑鼠,除了设定移动到的位置以外,还可以设置移动的时间(duration参数):
pyautogui.moveTo(100, 100, duration = 1.5) #用1.5秒移动到x=100,y=100的位置
  • pyautogui.moveRel() : 跟上个函式功能一样,只是这个函式是用你滑鼠目前的位置来做相对位置的判断
  • pyautogui.dragTo() : 这个函式用来模拟按着滑鼠拖曳的状态,除了目标位置以及移动的时间外,还可以设定button参数选择你要按的是左(left)、中(middle)、还是右(right)键
pyautogui.dragTo(100, 100, duration=2, button='right') #用2秒按住滑鼠右键到x=100,y=100的位置
  • pyautogui.click() : 顾名思义,在指定位置点击,格式跟上一个函式一样,少了duration参数,但多了两个参数
    可以使用,分别是clicks(点击次数)以及interval(点击中相隔的时间)
pyautogui.click(clicks=2, interval=0.5, button='right') #双击左键并且中途间隔0.5秒
  • pyautogui.scroll() : 模拟滑鼠滚轮,参数放数字,代表滚动几格

键盘控制

键盘有几个常用的函式:

  • pyautogui.press() : 按下特定按键,记得这边的形态要用字串表示:
pyautogui.press('enter') #按下enter键
pyautogui.press('c') #按下c键
pyautogui.press('alt') #按下alt键

这里可以看到其他按键对应的值
https://ithelp.ithome.com.tw/upload/images/20211005/20138060BEmJ7rPdVV.png

  • pyautogui.keyDown() : 按住指定按键,到pyautogui.keyUp()时放开:
pyautogui.keyDown('ctrl')
pyautogui.press('a')
pyautogui.keyUp('ctrl') #全选的功能键效果

可是每次弄这种组合键就要这样打好多行,有没有更快的方法?有,叫做hotkey():

  • hotkey() : 顾名思义,热键的函式。程序会按照先後顺序按下按键:
pyautogui.hotkey('ctrl', 'shift', 'esc') #开启工作管理员的快捷键

看了一下官方文件发现,他其实也支援interval(点击中相隔的时间)这个参数。
https://ithelp.ithome.com.tw/upload/images/20211005/20138060DYjabdgU7u.png

萤幕截图

  • pyautogui.screenshot() : 想不到吧,这套件也可以拿来萤幕截图,蛮方便的。参数放的是路径以及档案名称:
pyautogui.screenshot('screenshot/1.png')

https://ithelp.ithome.com.tw/upload/images/20211005/20138060T8Evfsn3x6.png

话说我都拿这个套件干嘛?恩...除了某些游戏需要定期的截图或是刷道具游戏需要定期点以外...
我都拿去按popcat(((((
不过这套件的确是很方便就是了,利用上面这些函式就可以自由针对不同事件撰写专门的自动化程序码,就不需要人力慢慢点罗~


<<:  [13th][Day27] cluster

>>:  Day20 探讨setting(2)

Day 16 - 用 useReducer 取代 Redux !?

如果有错误,欢迎留言指教~ Q_Q useReducer 看起来跟 Redux 的 reducer...

Day 18:专案03 - PTT 八卦版爬虫03 | 文章标题、作者、时间

哎呀哎呀,开学後变得好忙阿,连一天写一篇的时间都没有,果然先预留点文章是对的。参赛前还以为30天很短...

[Day14] 初见碰撞系统

到目前为止,我们有了时间,可以输入,还可以对「物件」进行位移,看来可以开始让「小铁(LittleIr...

DAY20-网站构思之进阶figma

前言: 昨天我们使用了几个基本的方法设计了网页的首页,今天阿森要来进一步介绍一些figma pro...

腾讯云轻量应用服务器 CentOS 7.6 升级内核开启 BBR

最近开通了良心云香港轻量,发现秋水逸冰的「一键 BBR 脚本」无法切换到最新内核开启 BBR 前提是...