📜  使用Python进行鼠标和键盘自动化

📅  最后修改于: 2020-04-10 04:42:58             🧑  作者: Mango

本文说明了如何使用Python中的pyautogui模块自动执行鼠标和键盘的移动。该模块未预装Python。因此要安装它,请运行以下命令:

pip install pyautogui

使用pyautogui模块控制鼠标移动

Python使用屏幕坐标系跟踪和控制鼠标。假设您的屏幕分辨率为1920X1080,则屏幕的坐标系如下所示:

size():此函数用于获取屏幕分辨率。

import pyautogui
print(pyautogui.size())

使用.py扩展名保存该文件,然后运行该文件。
此Python代码使用size()函数以x,y格式输出屏幕分辨率:输出:

(1920, 1080)
  • 通过安装Python并按照本文中提供的说明,可以轻松地在您的PC上本地运行这些代码。
  • moveTo():使用此函数在pyautogui模块中移动鼠标。
    import pyautogui
    pyautogui.moveTo(100, 100, duration = 1)
  • 此代码使用moveTo()函数(该函数采用x和y坐标)以及一个可选的duration参数。此函数将鼠标指针从当前位置移动到x,y坐标,并按照duration参数指定的时间进行操作。保存并运行此Python脚本,以查看您的鼠标指针从其当前位置神奇地移动到坐标(100,100),在此过程中花费1秒。
  • moveRel()函数:相对于其先前位置移动鼠标指针。
    import pyautogui
    pyautogui.moveRel(0, 50, duration = 1)
  • 此代码会将鼠标指针相对于其原始位置移至(0,50)。例如,如果在运行代码之前鼠标的位置是(1000,1000),则此代码将在1秒的持续时间内将指针移动到坐标(1000,1050)。
  • position():获取鼠标指针当前位置的函数。
    import pyautogui
    print(pyautogui.position())
  • 输出:协调在执行程序时鼠标所处的位置。
  • click():用于单击和拖动鼠标的函数
    import pyautogui
    pyautogui.click(100, 100)

    此代码在位置(100,100)上执行典型的鼠标单击。
    我们有两个与鼠标的拖动操作相关的函数dragTo和dragRel。它们的执行与moveTo和moveRel函数类似,不同之处在于它们在移动时按住鼠标左键,从而开始拖动。
    可以在各个地方使用此功能,例如移动对话框或使用MS Paint中的铅笔工具自动绘制某些内容。在油漆上画一个正方形

    import time
    # 具有与时间有关的功能的模块。 可以使用cmd命令安装:
    # pip install time
    import pyautogui
    time.sleep(10)
    # 使程序执行暂停10秒
    pyautogui.moveTo(1000, 1000, duration = 1)
    # 将鼠标移至1000、1000.
    pyautogui.dragRel(100, 0, duration = 1)
    # 将鼠标100、0相对于其先前位置拖动,从而将其拖动到1100、1000
    pyautogui.dragRel(0, 100, duration = 1)
    pyautogui.dragRel(-100, 0, duration = 1)
    pyautogui.dragRel(0, -100, duration = 1)
  • 在运行代码之前,请选择铅笔工具在后台打开MS Paint。现在运行代码,在10秒之前快速切换到MS Paint(因为在运行程序之前,我们使用sleep()函数给出了10秒的暂停时间)。
    10秒后,您将看到一个用MS绘画绘制的正方形,其左上边缘为1000、1000,边长为100像素。
  • scroll():滚动函数使用像素作为参数,并将屏幕向上滚动给定的像素数。
    import pyautogui
    pyautogui.scroll(200)

    此代码将活动屏幕最多滚动200个像素。

  • typewrite():您可以使用typewrite()函数自动键入字符串。只需传递要键入的字符串作为此函数的参数即可。
    import pyautogui
    pyautogui.click(100, 100)
    pyautogui.typewrite("hello 芒果 !")
  • 假设在屏幕上的坐标100、100处存在一个文本字段,则此代码将单击该文本字段以使其处于活动状态并在其中键入“ hello 芒果!”。
  • 传递键名:您可以通过typewrite()函数分别传递键名
    import pyautogui
    pyautogui.typewrite(["a", "left", "ctrlleft"])
  • 此代码自动等效于键入“ a”,按向左箭头键和按向左控制键。
  • 按热键组合:使用hotkey()函数按ctrl-c,ctrl-a等组合键。例如 
    import pyautogui
    pyautogui.hotkey("ctrlleft", "a")

    此代码自动等效于同时按向左ctrl和“ a”。因此,在Windows中,这将导致选择屏幕上存在的所有文本。