做不完的工作,写不完的文档,粘贴不完的excel,打不完的 word,讨厌的996,今天我将会带领一个你专属的机器人送给你,让它来代替你做这些重复性的工作,只要你能动脑经把工作分解成若干步可重复的劳动,它就可以帮你工作,而你只要跷着腿休息,拿工资即可。
它就可以帮你工作,而你只要瞧着腿休息拿工资即可
让我们快速进入正题。
今天将学习'如何使用Python自动化您的计算机鼠标和键盘'。
这就大家 喜欢Python的原因,它拥有我们想要的所有功能。
'进入Python世界,夫复何求。'
当然革命当家靠实干,当 尝试学习一些东西时, 只是Google和Boom, 会得到一些文章或有用的提示,更实干的方式,是让我们赶紧行动起来。
在本文中, 将使用Python模块PyAutoGUI来自动化鼠标和键盘。 看过许多与PyAutoGUI相关的文章,但在这里 将尝试给你一些使用这个模块的独特想法。
自动鼠标
使用PyAutoGUI的鼠标动画
PyAutoGUI的目的是为人类的 GUI自动化提供跨平台的Python模块。API设计为尽可能简单,具有合理的默认值。 将只介绍该模块的基础知识,其余的可以在PyPI模块的文档中查找更多属性和功能。
安装:
视窗:
在Windows上,安装和使用PyAutoGUI要容易得多。在Windows上,如果安装了pip,可以使用pip从PyPI安装它。
pip install pyautogui
Os X:
在Os X上,您需要安装一些额外的模块才能运行PyAutoGui。
pip3 install pyobjc-core
pip3 install pyobjc
pip3 install pyautogui
Linux的:
在Linux上,您必须安装一些软件包。
pip3 install python3-xlib
sudo apt-get install scrot
sudo apt-get install python3-tk
sudo apt-get install python3-dev
pip3 install pyautogui
入门:
如果你想制作一个令人难以置信的自动化工具,你可以将这个模块集成到其他很棒的模块,如Selenium,OpenCV等。
您可以使用PyAutoGUI执行以下操作。
·
· (相对,固定)
· (相对,固定)
· (右,中,左,上,下,双和三)
· (向上,向下,向左和向右)
·
· (f1 - f2,所有其他键)
· (例如CTR + C)
·
·
·
·
(图像搜索):
·
·
·
·
稳定保障功能:
暂停:
Pause是PyAutoGUI中的一个选项,用于设置模块每次调用之间的暂停。例如: 有两个函数,一个是write,另一个是click,第二个函数是在配置了这个选项后配置的持续时间后执行的。
pyautogui.PAUSE = dur#2.5
安全失败:
此选项更像是使用CTRL + C取消程序。如果此选项设置为True,它会中止程序并pyautogui.FailSafeException通过将鼠标移动到屏幕的左上角来引发异常。
pyautogui.FAILSAFE = True
鼠标功能:
鼠标移动:
鼠标移动
鼠标移动
您可以使用pyautogui类的以下功能将鼠标移动到屏幕的x,y坐标
pyautogui.moveTo(x,y,duration = num_seconds)
其中x和y是屏幕上的XY坐标。X增加向右,Y增加向下。持续时间是指根据时间使鼠标移动缓慢的时间(以秒为单位)。
还有一个函数可以将鼠标相对于鼠标的当前位置移动,这意味着它将鼠标(100,100)从当前鼠标位置向左和向右移动。
pyautogui.moveRel(xOffset,yOffset,duration = num_seconds)
#你可以使用pyautogui.move(X偏移,Y偏移)以及
这里,xOffset和yOffset分别是鼠标x和y的当前位置的增量。
拖动:
鼠标拖动
拖动是鼠标的另一个非常重要的功能,拖动只是意味着在按住单击按钮的同时移动鼠标。您可以通过以下功能进行拖动。
pyautogui.dragTo(x,y,duration = num_seconds)
pyautogui.dragRel(xOffset,yOffset,duration = num_seconds)
#你也可以使用pyautogui.drag(xOffset,yOffset)
这些功能的说明与鼠标移动相同。
点击次数:
不同类型的点击次数
如您所知, 可以手动使用鼠标执行不同类型的点击。PyAutoGUI可以让 使用其中的许多功能。他们之中有一些是:
· 单击,双击和三击
· 鼠标按钮上下事件
· 左,右和中间点击
语法:
pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0)
你可以使用这样的click函数:
pyautogui.click#在当前位置单击鼠标
pyautogui.click(20,10)#move to 20,10,然后单击鼠标左键
#你也可以传递一个元组(20,10)
pyautogui.click(button ='right')#右键单击鼠标
pyautogui.click(button ='middle')# middle - 点击鼠标
pyautogui.click(button ='left')# left - 点击鼠标
#你也可以通过以上方式传递它
pyautogui.click(clicks = 2)#双击鼠标左键
pyautogui.click(clicks = 2,interval = 0.25)#双击鼠标左键,但点击之间有四分之一秒的暂停
pyautogui.click(button ='right',clicks = 3,interval = 0.25)##三击鼠标右键,点击之间间隔四分之一秒
还有单独的功能来完成相同的工作。
pyautogui.doubleClick#执行左键双击
pyautogui.rightClick#执行右键单击
pyautogui.middleClick#执行中键单击
pyautogui.trippleClick#执行左键三击
为每个函数提供更多可选属性,例如x和y坐标,持续时间和间隔。
鼠标点击和拖动包括按下鼠标按钮并将其释放回来。如果要单独执行这些操作,请调用mouseDown和mouseUp功能。它们具有相同的x,y和button 。
pyautogui.mouseDown; pyautogui.mouseUp#与鼠标左键单击功能相同
pyautogui.mouseDown(button ='right')#按下右键
pyautogui.mouseUp(button ='right',x = 100,y = 200)#将鼠标移动到100,200,然后向上释放右键。
滚动:
鼠标滚动
可以通过调用scroll函数并传递整数个'点击'来滚动来模拟鼠标滚轮。'点击'中的滚动量因平台而异。
句法:
pyautogui.scroll(点击次数,x =无,y =无)
你可以使用这样的scroll函数:
pyautogui.scroll(10)#向上滚动10'点击'
pyautogui.scroll(-10)#向下滚动10'点击'
pyautogui.scroll(10,x = 100,y = 100)#将鼠标光标移动到100,200,然后向上滚动10'点击'
您可以hscroll在linux和OSX平台中左右滚动。
键盘功能:
写作:
用动画写单词
您可以在pyautogui类的函数的帮助下编写字母,单词或句子。它还提供每个打字单词之间的延迟,这使它更美妙。
pyautogui.typewrite('Hello world!')#打印出'Hello world!' 即刻
如果您想要为这句话设置动画并希望计算机在一小段时间后编写它,那么您可以使用interval属性。
pyautogui.typewrite('Hello world!',interval = 0.25)#打印出'Hello world!' 每个角色后延迟四分之一秒
按键:
按键
要按下这些键,请调用该press函数并将字符串中定义的值传递给函数。
要按下多个键,传递一个元组或一个键列表,它还需要另一个可选属性presses=1 来限制键的按下次数。
还有一个属性interval=0.0是每个按键之间的间隔。
定义了此功能的键,可通过以下选项检索pyautogui.KEYBOARD_KEYS 。它将打印它支持的已定义键列表。例如:enter,up,down,esc,f1。请参阅KEYBOARD_KEYS。
pyautogui.press('enter')#按Enter键
pyautogui.press('f1')#按F1键
pyautogui.press('left')#按左箭头键
press只是包装keyUp和keyDown功能,模拟按下一个键,然后释放它。
pyautogui.keyDown('shift')#按住shift键
pyautogui.keyUp('shift')#释放shift键
按快捷方式:
按快捷方式
为了使按键热键或键盘快捷键方便,hotkey可以传递几个按键顺序按下的键,然后以相反的顺序释放。
pyautogui.hotkey('ctrl','shift','esc')#同时按CTRL + SHIFT + ESC
上面的代码相当于
pyautogui.keyDown('ctrl') #按住CTRL按钮pyautogui.keyDown('shift') #按住SHIFT按钮
pyautogui.keyDown('esc') #按住ESC按钮
pyautogui.keyUp('esc') #释放ESC按钮
pyautogui.keyUp('shift') #释放SHIFT按钮
pyautogui.keyUp('ctrl') #Release CTRL按钮
消息框功能:
PyAutoGUI还显示JavaScript样式的消息框。提供了四个消息框功能:
警报窗口:
警报窗口
警报框
显示带有文本和单个'确定'按钮的简单消息框。返回单击按钮的文本。
pyautogui.alert(text ='',title ='',button ='OK')
确认窗口:
确认窗口
确认窗口
显示带有确定和取消按钮的消息框。按钮的数量和文本可以自定义。返回单击按钮的文本。
pyautogui.confirm(text ='',title ='',buttons = ['OK','Cancel'])
提示窗口:
确认窗口
提示窗口
显示带有文本输入的消息框,以及'确定'和'取消'按钮。返回输入的文本,如果单击取消,则返回None。
pyautogui.prompt(text ='',title ='',default ='')
密码窗口:
密码窗口:
密码窗口
显示带有文本输入的消息框,以及'确定'和'取消'按钮。键入的字符显示为*。返回输入的文本,如果单击取消,则返回None。
password(text='', title='', default='', mask='*')
截图功能(图像搜索):
PyAutoGUI可以截取屏幕截图,将其保存到文件中,并在屏幕中查找图像。如果您有一个小图像,例如需要单击并希望在屏幕上找到它的按钮,这将非常有用
截取屏幕截图:
调用screenshot将返回一个Image对象。传递文件名字符串会将屏幕截图保存到文件中,并将其作为Image对象返回。
im1 = pyautogui.screenshot
im2 = pyautogui.screenshot('my_screenshot.png')
region如果您不想要整个屏幕的屏幕截图,还有一个可选的关键字参数。您可以传递区域左侧,顶部,宽度和高度的四个整数元组来捕获:
im = pyautogui.screenshot(region =(0,0,300,400))
在屏幕上找到图像:
如果您有图像文件,可以在屏幕上直观地找到某些内容。例如,假设计算器应用程序正在您的计算机上运行,看起来像这样:
计算器
并且您有一个按钮的图像,例如7按钮的图像:
7按钮
你可以调用locateOnScreen('7key.png')函数来获取屏幕坐标。返回值是一个4整数元组:(左,顶,宽,高)。但是,如果您只想在屏幕上显示图像的x和y坐标,则可以调用locateCenterOnScreen该坐标仅返回x和y坐标。如果找不到屏幕上的图像,它将会升起ImageNotFoundException 。如果要单击该图像或对象,只需将前一个函数的返回值中的x和y坐标传递给click函数即可。要了解有关在屏幕上查找对象的更多信息,请访问此链接。
其他特性:
屏幕尺寸:
为了获得屏幕大小,PyAutoGUI有一个函数size返回整数元组:(宽度,高度)为主监视器的大小。
pyautogui.size #output:大小(宽度= 1366,高度= 768)
光标的位置:
为了获得光标的当前位置,PyAutoGUI有一个函数position返回整数元组:(x,y)表示鼠标光标的当前位置。
pyautogui.position # outpu:Point(x = 487,y = 664)
好,先介绍到这里。毫不夸张的说,从游戏代练到办公室工作,到居家旅游,这个键盘机器人都可以代办了。
大家说说,你可以用这个机器人干啥,当然活少工资多,也可以分我点,哈哈。
联系客服