程序员用Python实现自动化控制键盘和鼠标( 二 )

比如,鼠标的双击,单击和右击等操作,示例代码如下 。
import pyautogui as lazy_boylazy_boy.click()lazy_boy.doubleClick()lazy_boy.rightClick()lazy_boy.middleClick()PIL模块
PIL模块是一个Python图像库模块,它包含了很多子模块,我们这里的例子将只使用ImageGrab模块用于图像操作 。下面是的代码片段,展示了ImageGrab的简单用法 。
from PIL import ImageGrabdef screenshots():screen_width, screen_height = lazy_boy.size()rect = (0, 0, screen_width, screen_height)img = ImageGrab.grab(rect)return img代码实现到现在相关的准备工作已经完成,接下来看看具体实现 。
编写伪码
Python代码实现中,将先介绍pyautogui模块的一些基本操作,然后再介绍一个简单的例子,那就是让我们的程序自动打开Notepad++,新建一个文件,输入一段Python代码,最后将该文件保存为Python文件 。
# pyautogui模块的基本操作# 打开Notepad++# 新建一个文件# 输入Python代码# 将该文件保存为Python文件Python代码
下面的代码介绍pyautogui模块的基本用法,便于了解该模块的基本功能 。
import pyautogui as lazy_boy# 获取当前鼠标的坐标current_x, current_y = lazy_boy.position()# 鼠标操作lazy_boy.moveTo(x, y)lazy_boy.moveRel()lazy_boy.locateOnScreen('./test.jpg')lazy_boy.click(x, y) # 根据坐标x, y单击lazy_boy.doubleClick()lazy_boy.rightClick()lazy_boy.middleClick()# 拖拽鼠标lazy_boy.mouseDown()lazy_boy.dragTo()lazy_boy.dragRel()lazy_boy.mouseUp()lazy_boy.scroll(200)# 键盘操作lazy_boy.typewrite(message='Hello world!', interval=0.5)lazy_boy.press('esc')lazy_boy.press('enter')lazy_boy.keyDown('shift')lazy_boy.keyUp('shift')lazy_boy.hotkey('ctrl', 'c')lazy_boy.hotkey('ctrl', 'v')# 粘贴板操作import pyperclippyperclip.copy('学习Python')pyperclip.paste()# 截屏im = lazy_boy.screenshot('screenshot.png')# 获取坐标位置的颜色im.getpixel((x, y))# 判断坐标(x, y)处的颜色是否为(r, g, b)lazy_boy.pixelMatchesColor(x, y, (r, g, b))# 在当前屏幕中查找指定图片(图片需要由系统截图功能截取的图),比如查找按钮坐标coord = lazy_boy.locateOnScreen('button.png')# 获取找到的按钮的中心坐标x, y = lazy_boy.center(coord)# 在该坐标点右击lazy_boy.rightClick(x, y)# 在坐标(120,110)处输入"Python is a good language!"lazy_boy.click(120, 110)lazy_boy.typewrite('Python is a good language!')# 为输入过程加入延迟lazy_boy.typewrite('Python is a good language!', 0.3)#lazy_boy.FAILSAFE = Truelazy_boy.PAUSE = 1下面的代码是一个实际案例,比较简单,用于打开Notepad++程序,并新建一个文件,输入两行Python代码,然后将该文件另存为"auto_crreate.py" 。为了点击保存按钮,我们需要提前将保存按钮截图,并存为save.png文件 。import pyperclipimport pyautogui as lazy_boylazy_boy.FAILSAFE = Truelazy_boy.PAUSE = 1# 这个程序将自动打开Notpad++, 新建一个文件,并输入Python代码,最后将其保存为Python文件lazy_boy.press('win')lazy_boy.typewrite('Notepad++')lazy_boy.press('enter')lazy_boy.hotkey("ctrl", "n")lazy_boy.typewrite("import osrnprint('Hello python')rn", 0.5)pyperclip.copy("This is a test file")pyperclip.paste()lazy_boy.hotkey("ctrl", "s")lazy_boy.typewrite("auto_create.py")coord = lazy_boy.locateOnScreen('save.png')print(coord)# 获取定位到的图中间点坐标x, y = lazy_boy.center(coord)lazy_boy.click(x, y)本文总结本文介绍了一个非常实用的内容,用Python自动化控制键盘和鼠标,这样当我们遇到一些很棘手的问题,如果没有第三方库支持,那么我们就可以利用本章进行去解决 。因为所有的事情都是可以通过键盘和鼠标来完成的,复杂的事情,我们可能需要更多代码和操作步骤,但终究都是可以被搞定的 。因此,当读者遇到任何难题的时候,不要轻易彻底放弃,可以短暂搁置,让这件事一直盘旋在自己的脑海中,在空闲的时候,或者某一刻就会有思路从脑海中冒出来 。




推荐阅读