📜  使用Python实现鼠标和键盘自动化

📅  最后修改于: 2022-05-13 01:55:16.104000             🧑  作者: Mango

使用Python实现鼠标和键盘自动化

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

pip3 install pyautogui

使用 pyautogui 模块控制鼠标移动

Python使用屏幕坐标系跟踪和控制鼠标。假设你的屏幕分辨率是 1920X1080,那么你的屏幕坐标系是这样的:

python中的gui

  • size():该函数用于获取屏幕分辨率。
Python
import pyautogui
print(pyautogui.size())


Python
import pyautogui
pyautogui.moveTo(100, 100, duration = 1)


Python
import pyautogui
pyautogui.moveRel(0, 50, duration = 1)


Python
import pyautogui
print(pyautogui.position())


Python
import pyautogui
pyautogui.click(100, 100)


Python
import time
 
# a module which has functions related to time.
# It can be installed using cmd command:
# pip install time, in the same way as pyautogui.
import pyautogui
time.sleep(10)
 
# makes program execution pause for 10 sec
pyautogui.moveTo(1000, 1000, duration = 1)
 
# moves mouse to 1000, 1000.
pyautogui.dragRel(100, 0, duration = 1)
 
# drags mouse 100, 0 relative to its previous position,
# thus dragging it to 1100, 1000
pyautogui.dragRel(0, 100, duration = 1)
pyautogui.dragRel(-100, 0, duration = 1)
pyautogui.dragRel(0, -100, duration = 1)


Python
import pyautogui
pyautogui.scroll(200)


Python
import pyautogui
pyautogui.click(100, 100)
pyautogui.typewrite("hello Geeks !")


Python
import pyautogui
pyautogui.typewrite(["a", "left", "ctrlleft"])


Python
import pyautogui
pyautogui.hotkey("ctrlleft", "a")


Python3
import pyautogui as pg
import time
 
def delete_for_everyone():
    pg.click(807, 979)
    pg.typewrite("hello")
    pg.typewrite(["enter"])
    time.sleep(2)
    pg.click(1621, 896)
    pg.click(1621, 896)
     
    # time.sleep(1)
    pg.click(1693, 859)
     
    # time.sleep(1)
    pg.click(1014, 669)
     
    # time.sleep(1)
    pg.click(1111, 605)
     
a=20
time.sleep(10)
while(a!=0):
    delete_for_everyone()
    a=a-1


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

(1920, 1080)

注意:本文中提供的某些代码可能无法在 geeksforgeeks IDE 上运行,因为 geeksforgeeks IDE 没有运行这些代码所需的模块。但是这些代码可以通过安装Python并按照文章中提供的说明轻松地在您的 PC 上本地运行。

  • moveTo():使用该函数在 pyautogui 模块中移动鼠标。

Python

import pyautogui
pyautogui.moveTo(100, 100, duration = 1)

此代码使用 moveTo()函数,该函数接受 x 和 y 坐标,以及可选的持续时间参数。此函数将您的鼠标指针从当前位置移动到 x、y 坐标,并花费时间参数指定的时间来执行此操作。保存并运行这个Python脚本,可以看到你的鼠标指针神奇地从当前位置移动到坐标 (100, 100),在这个过程中需要 1 秒。

  • moveRel()函数:相对于其先前位置移动鼠标指针。

Python

import pyautogui
pyautogui.moveRel(0, 50, duration = 1)

此代码将鼠标指针相对于其原始位置移动到 (0, 50)。例如,如果在运行代码之前鼠标位置为 (1000, 1000),则此代码将在 1 秒内将指针移动到坐标 (1000, 1050)。

  • position():获取鼠标指针当前位置的函数。

Python

import pyautogui
print(pyautogui.position())

输出:执行程序时鼠标所在的坐标。

  • click():用于单击和拖动鼠标的函数。

Python

import pyautogui
pyautogui.click(100, 100)

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

Python

import time
 
# a module which has functions related to time.
# It can be installed using cmd command:
# pip install time, in the same way as pyautogui.
import pyautogui
time.sleep(10)
 
# makes program execution pause for 10 sec
pyautogui.moveTo(1000, 1000, duration = 1)
 
# moves mouse to 1000, 1000.
pyautogui.dragRel(100, 0, duration = 1)
 
# drags mouse 100, 0 relative to its previous position,
# thus dragging it to 1100, 1000
pyautogui.dragRel(0, 100, duration = 1)
pyautogui.dragRel(-100, 0, duration = 1)
pyautogui.dragRel(0, -100, duration = 1)

在运行代码之前,在后台打开 MS Paint 并选择铅笔工具。现在运行代码,在 10 秒前快速切换到 MS 绘图(因为我们在运行程序之前使用 sleep()函数给出了 10 秒的暂停时间)。
10 秒后,您将看到在 MS Paint 中绘制了一个正方形,其左上边缘为 1000、1000,边长为 100 像素。

  • scroll():滚动函数不接受。像素作为参数,并将屏幕滚动到给定数量的像素。

Python

import pyautogui
pyautogui.scroll(200)

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

  • typewrite():您可以使用 typewrite()函数自动输入字符串。只需将要键入的字符串作为此函数的参数传递即可。

Python

import pyautogui
pyautogui.click(100, 100)
pyautogui.typewrite("hello Geeks !")

假设屏幕上的坐标 100、100 出现了一个文本字段,那么此代码将单击该文本字段以使其处于活动状态并输入“hello Geeks!”在里面。

  • 传递键名:您可以通过 typewrite()函数单独传递键名。

Python

import pyautogui
pyautogui.typewrite(["a", "left", "ctrlleft"])

此代码自动等效于键入“a”、按左箭头键和按左控制键。

  • 按下热键组合:使用 hotkey()函数按下 ctrl-c、ctrl-a 等键的组合。

Python

import pyautogui
pyautogui.hotkey("ctrlleft", "a")

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

例子:

在 WhatsApp 中发送消息并自动为所有人删除。您需要已经在 chrome 中打开了 Whatsapp 才能运行它。运行此代码后,在 chrome 上打开 WhatsApp 选项卡。

Python3

import pyautogui as pg
import time
 
def delete_for_everyone():
    pg.click(807, 979)
    pg.typewrite("hello")
    pg.typewrite(["enter"])
    time.sleep(2)
    pg.click(1621, 896)
    pg.click(1621, 896)
     
    # time.sleep(1)
    pg.click(1693, 859)
     
    # time.sleep(1)
    pg.click(1014, 669)
     
    # time.sleep(1)
    pg.click(1111, 605)
     
a=20
time.sleep(10)
while(a!=0):
    delete_for_everyone()
    a=a-1