Jade Dungeon

Python控制键盘鼠标

pyautogui

pip install pyautogui

键盘鼠标控制

import pyautogui

screenWidth, screenHeight = pyautogui.size()        # 返回屏幕分辨率
currentMouseX, currentMouseY = pyautogui.position() # 返回鼠标的所在位置
pyautogui.moveTo(100, 150)                          # 移动鼠标到指定位置
pyautogui.click()                                   # 单击
pyautogui.click(200, 220)                           # 单击指定位置
pyautogui.move(None, 10)                            # 移动鼠标10个像素
pyautogui.doubleClick()                             # 双击鼠标
pyautogui.write('Hello world!', interval=0.25) # 输入字符串,每个字符停留时间0.25秒
pyautogui.press('esc')                              # 退出键
pyautogui.keyDown('shift')                          # Shitf键盘
pyautogui.hotkey('ctrl', 'c')                       # 组合键

拖动效果的例子:

pyautogui.moveTo(50,200,duration=2)
pyautogui.click()
for i in range(5):
    pyautogui.dragRel(50,0,duration=2)
    pyautogui.dragRel(0,50,duration=2)

拖动效果

除了可以控制鼠标键盘外,还可以调用系统弹窗。 通过窗口消息盒子可以实现一些简单的人机交互,比如某些地方需要人工输入内容时, 这样可以接受用户的指令。

import pyautogui

pyautogui.alert('This is an alert box.')                       # 'OK'
pyautogui.confirm('Shall I proceed?')                          # 'Cancel'
pyautogui.confirm('Enter option.', buttons=['A', 'B', 'C'])    # 'B'
pyautogui.prompt('What is your name?')                         # 'Al'
pyautogui.password('Enter password (text will be hidden)')     # 'swordfish'

还可以截屏。截图是使用的Pillow模块实现的, 截图的用处在于通过图片识别技术识别图片内容, 然后通过内容精准定位到某个元素的位置,实现精准点击。

import pyautogui
	
im1 = pyautogui.screenshot()
im1.save('my_screenshot.png')
im2 = pyautogui.screenshot('my_screenshot2.png')