详解Python中键盘鼠标的相关操作

目录
  • 一、前言
  • 二、pyautogui模块
  • 三、鼠标相关操作
    • 1、鼠标移动
    • 2、获取鼠标位置
    • 3、鼠标点击
    • 4、按松鼠标
    • 5、拖动窗口
    • 6、上下滑动
    • 7、小程序——鼠标操控术2.0
    • 8、小程序——连点器
  • 四、键盘相关操作
    • 1、按键的按松
    • 2、键入字符串
    • 3、热键
    • 4、小程序——轰炸器
    • 5、小程序——520个我爱你
  • 五、尾声

一、前言

恭喜你,学明白类,你已经学会所有基本知识了。

这章算是一个娱乐篇,十分简单,了解一下pyautogui模块,这算是比较好学还趣味性十足的,而且可以做许多小程序。

本文会对ptautogui模块进行详细的学习and讲解。写作不易,支持一波~

二、pyautogui模块

pyautogui模块,规范一点大写就是PyAutoGUI模块,是用来实现自动化脚本的一个十分得力的小助手。他可以操控键盘和鼠标,可以写许多工具。

安装的话就用我们万能的pip包,相信大家已经安装过了,没安装的话网上有许多教程可以学。

win+R,输入cmd,再输入:

pip install pyautogui

你就安装成功了。之后可以输入import pyautogui,没报错就是成功。

接下来,我们就可以玩转鼠标和键盘了。模块名字比较长,建议用as取一个别名,但可别取成py啊。

三、鼠标相关操作

1、鼠标移动

我们先学习鼠标移动的相关。first了解一下计算机的坐标系统。

计算机显示器的分辨率一般是1920x1080,有的不一样,我们用size函数来获取用户显示器的分辨率。他会返回两个值,要用两个变量保存。

import pyautogui as gui
a,b=gui.size()
print(a,b)

输出:1920 1080(根据用户显示器大小而定宽度、长度)

注意,就算是分辨率我们也要用“减一”原则,例如你的显示器宽度1920,那么最左边是0,最右边是1919,1920就越界了。

如果我们想让鼠标移动,就要用moveTo,注意T是大写。他可以填入两个参数:移动地点的x坐标,y坐标。

import pyautogui as gui
gui.moveTo(1919,1079)

这个程序可以让鼠标瞬移到右下角,是不是很nb?

还可以填第三个参数,是移动所需要的时间,默认0秒。

注意:在鼠标移动的过程中,要是移动鼠标他会给你拉回原位置,相当于固定住了,所以把时间调长容易直接动不了,非常的难受。

这里,教给大家一个东西。pyautogui模块里面自带了神奇的变量:FAILSAFE,默认为True。当这个变量为True时,如果鼠标控制不了了,你就使劲往左上角拉,程序就会报错。

import pyautogui as gui
gui.FAILSAFE =True
gui.moveTo(1919,1079,5)

这段代码鼠标会移动到右下角,如果在这个过程中使劲往左上角拉就会报错。

接下来,我们就可以做一个简单的小程序——鼠标操控术。

import pyautogui as gui
import random as r
gui.FAILSAFE =True
a=0
print("嘎嘎嘎你的鼠标被我 操控了")
while a<=100:
    gui.moveTo(r.randint(1,1919),r.randint(1,1079))
    a+=1

这个程序运行后,会把你的鼠标随机移动到任意地方100次。

你可以自己调整循环次数来整你的好友,前提是他的电脑要有python。

我们把FAILSAFE设置为了True,控制不住的时候就使劲往左上移动就行,要是想整蛊好友就设置成False。好玩不?

另外,如果想在原有基础上移动,就用move。

import pyautogui
pyautogui.move(100,100,2)

例如这个程序,会花2秒将鼠标往右移动100格,往下移动100格。

2、获取鼠标位置

之后是position()函数,可以获取当前鼠标的位置。

import pyautogui as gui
import time
while True:
    print(gui.position())
    time.sleep(1)

这个程序可以隔1秒输出一次你的鼠标的位置。

3、鼠标点击

如果要让鼠标点击,就要用click函数。

pyautogui.click(0,0,button='left')
pyautogui.click(0,0,button='right')
pyautogui.click(0,0,button='middle')

前两个值还是点击的xy坐标,第三个值是点击的键,记住要用关键字参数的形式,left是左键,right是右键,middle是中键。这个程序是分别用左键右键中键点击左上角。

如果要双击左键,用doubleClick,双击右键用rightClick,双击中键用middleClick。他们三个用法相近,还是要填xy坐标。

pyautogui.doubleClick(10,10)
pyautogui.rightClick(10,10)
pyautogui.middleClick(10,10)

运行之后会在10,10的位置双击左键,双击右键,双击中键。

4、按松鼠标

如果我们要按松鼠标就要用mouseDown和mouseUp,mouseDown是按下,mouseUp是松开。

import pyautogui as gui
from time import sleep
print("落下")
gui.mouseDown()
sleep(1)
gui.mouseUp()
print("松开")

这个程序会先按下鼠标,等一秒松开。

5、拖动窗口

要拖动一个窗口,如果想移动到一个位置用dragTo,还是两个参数为xy坐标,第三个参数为时间,默认为0。

import pyautogui as gui
gui.dragTo(0,0,3)

这个程序会把按住的窗口用3秒拖动到左上角。

如果想在原位置的基础上移动用dragRel,前两个参数为要往右移动多少和往下移动多少,第三个参数为时间。

import pyautogui as gui
gui.dragRel(200,0,3)

这个程序会把按住的窗口用三秒时间往右移动200像素。

同样,还有一个drag,因为网上我也没查到相关资料,自己试验出来的效果···好像和dragRel一样?我也不知道咋回事,如果有人知道请在评论区指出,谢谢配合。

6、上下滑动

如果想上下滑动(就是移动滚轮),就要用scroll,要填一个参数,为移动的格数,默认是往上滑,加上-负号是往下滑。注意,滑动的时候鼠标必须停留在那个窗口上否则没用。

import pyautogui as gui
gui.scroll(-200)

这个程序会在鼠标停留页面往下滑动200格。

7、小程序——鼠标操控术2.0

鼠标的用法就是这么多了。他可以做很多的自动化程序。

现在,让我们把刚才操控鼠标的程序完善一下。

import pyautogui as gui
import random as r
gui.FAILSAFE =True
a=0
print("嘎嘎嘎你的鼠标被我 操控了")
while a<=100:
    b=r.randint(1,3)
    if b==1:
        gui.moveTo(r.randint(1,1919),r.randint(1,1079))
    if b==2:
        gui.click(r.randint(1,1919),r.randint(1,1079),button='left')
    if b==3:
        gui.dragTo(r.randint(1,1919),r.randint(1,1079))
    a+=1

这个程序还会在原有的基础上乱点,滑动,整蛊好友的时候别忘了改成False哦~

8、小程序——连点器

接下来,让我们尝试做一个连点器。

import pyautogui as gui#导入pyautogui模块
from time import sleep#导入time中的sleep函数
gui.SAILSAFE=True#开启安全功能
a=int(input("要点击几次?"))#获取点击次数
print("5秒后程序将运行,请将光标悬浮于连点界面上,如果控制不住鼠标请把鼠标往左上角滑动")#提示
sleep(5)#预留时间
x,y=gui.position()#获取鼠标坐标
for i in range(a):#重复执行
    gui.click(x,y)#点击
print("连点结束")#提示

效果:

加上我的手速也才点了这么多,python还是太慢了,但也满足需求了。

四、键盘相关操作

接下来是键盘的相关操作。

1、按键的按松

按键按下,用keyDown,按键起来用keyUp,这俩要配合起来用。

import pyautogui as gui
gui.keyDown("shift")
gui.keyUp("shift")

这个程序就是按下松开一次shift。

要是不想多打字就用press,它就相当于同时调用keyDown和keyUp。

import pyautogui as gui
gui.press("shift")

他与上一个程序效果一样。

如果想按多个键就用列表给他包起来就行了。

import pyautogui as gui
gui.press(['a','left','b'])

这个程序会按a,再按左键,再按b,之后就相当于按了ba。

2、键入字符串

最好用的是typewrite,就是输入一个字符串。注意:一定要确保光标位置,不然没有用。

import pyautogui as gui
gui.typewrite('666')

这个程序会在指定位置输入666。注意:typewrite只能输入英文,中文不起作用。

typewrite如果后面再放一个参数,就代表输入每一个字母的间隔时间。

import pyautogui as gui
gui.typewrite('python',1)

这个程序运行之后,会隔1秒输入1个字符,输出完python一共要5秒。

是不是很厉害?

它还可以放在列表里来输出多个字符串,例如这个程序:

import pyautogui as gui
gui.typewrite(['a','left','b'])

注意:这里的left可是左方向键的意思,程序会把他转换,他会键入ba。

有人问了:typewrite和press有啥区别啊?

没认真看吧?typewrite的意思是输入字符串,press是敲击键盘。left只是在typewrite里面会发生转义,转义知不知道?

3、热键

还有一个有用的函数,是hotkey,就是热键,快捷键,放上按键就能完成一次快捷键。

import pyautogui as gui
gui.hotkey('alt','tab')

这个程序运行之后会按下alt+tab,是不是很实用?

OK,键盘操作的学习就这么多了。是不是很简单?全是干货建议收藏。

4、小程序——轰炸器

接下来是一个小程序:轰炸器,帮你把网络喷子治得服服帖帖。

import pyautogui as gui#导入PyAutoGUI模块
import time#导入时间模块
print("三秒之后,程序将会进行轰炸,请复制自己的轰炸文本,做好心理准备")#提示
time.sleep(3)#预留时间切换界面
a=0#初始化变量
while a<100:#重复100次
    a+=1#a自增
    gui.hotkey('ctrl','v')#按下ctrl+v
    gui.hotkey('ctrl','enter')#按下ctrl+enter
    time.sleep(0.3)#等待0.3秒

这里面,循环次数、等待时间是可以根据情况改变的。

当程序运行之后,复制轰炸内容,把光标点到你要轰炸的那个界面做好等待就行。

运行效果:

再进行一下随机话语的功能。

import pyautogui as gui#导入PyAutoGUI模块并起名gui
from time import sleep#导入时间模块里面的sleep
from random import randint#导入随机数模块里面的randint
print("三秒之后,程序将会进行轰炸,做好心理准备")#提示
sleep(3)#预留时间切换界面
a=0#初始化变量
while a<100:#重复100次
    a+=1#a自增
    c=randint(1,3)#设置随机数
    if c==1:#如果c是1
        gui.press(['s','h','a','b','i','1'])#就输入《优美的中国话》
    elif c==2:#如果c是2
        gui.press(['c','a','o','n','i','m','a','1'])#就输入《还是优美的中国话》
    else:#如果c是3
        gui.press(['g','u','n','n','i','m','a','1'])#就输入《十分优美的中国话》
    gui.hotkey('ctrl','enter')#按下ctrl+enter
    sleep(0.3)#等待0.3秒

这些话语可以调整,拿c=1的情况举例,这时候就会敲击键盘上的shabi,之后按1就完成了。要不是typewrite不能整中文还能更简便。注意运行的时候把输入法改回中文。

运行效果:

(希望图片能显示)在使用之前最好训练一下自己的输入法,不然输出可能不对,但大部分输入法都是可以固定首位的:

这样就不会出现输入错误的情况了,就算不能固定首位意思也大抵不会差。

以后遇到网络喷子,就用代码回击他好吧。

5、小程序——520个我爱你

我们还可以完成现在很火的发送520个我爱你。

import pyautogui as gui#导入PyAutoGUI模块并起名gui
from time import sleep#导入时间模块里面的sleep
sleep(3)#预留时间切换界面
a=0#初始化变量
while a<=520:#重复520次
    a+=1#a自增
    gui.press(['w','o','a','i','n','i','1'])#敲击woaini,选择第一项来输入“我爱你“
    gui.typewrite(str(a))#键入字符串a
    gui.press('enter')#敲击enter
gui.hotkey('ctrl','enter')#打字完毕ctrl+enter发送
python还是有点慢了,可以耐心等等。

效果:

五、尾声

PyAutoGUI模块是一个很好用也很好玩的自动化程序辅助,可以做出来许多自动化小程序,还是很好玩的。

学完基础的知识,就要和模块打交道了。这就是你学习的第一个模块。

以上就是详解Python中键盘鼠标的相关操作的详细内容,更多关于Python键盘鼠标操作的资料请关注我们其它相关文章

(0)

相关推荐

  • Python控制鼠标键盘代码实例

    python控制鼠标键盘其实很容易,我们在写程序的时候很多时候会用的到! python控制鼠标键盘步骤及代码 1.安装类库 pip install pyautogui 2.代码: import pyautogui,time,random pyautogui.PAUSE = 3 pyautogui.FAILSAFE = True width, height = pyautogui.size() #print(str(width)) #print(str(height)) def drawRct()

  • Python利用PyAutoGUI模块实现控制鼠标键盘

    目录 前言 1.鼠标的相关控制 2.键盘的相关控制 前言 PyAutoGUI是一个简单易用,跨平台的可以模拟键盘鼠标进行自动操作的python库. 使用pip的方式安装pyautogui模块 pip install pyautogui pyautogui在使用的时候有两个比较关键的隐患(程序在启动起来以后很难关闭)需要注意一下.一是鼠标出现在屏幕的最上方会出现报错,二是键盘的自动操作太快,所以需要先设置一下相关的参数. import pyautogui as ui # 导入pyautogui代码

  • python 实现控制鼠标键盘

    1.安装类库 pip install pyautogui 2.代码: import pyautogui,time,random pyautogui.PAUSE = 3 pyautogui.FAILSAFE = True width, height = pyautogui.size() #print(str(width)) #print(str(height)) def drawRct(): for i in range(10): pyautogui.moveTo(300, 300, durati

  • python模拟鼠标点击和键盘输入的操作

    所有代码都是网上百度出来的,通过个人实践找到适合自己的. 采用的python 库是 pymouse.pykeyboard 安装时直接pip安装的,pip install PyUserInput 安装不成功的可以参照http://www.lfd.uci.edu/~gohlke/pythonlibs/这个地址,内容很全 实现了一个最简单的输入密码,enter进入的登录过程 如果想遍历,可以使用itertools 包,很有用,具体用法这里不介绍了. · 鼠标点击 有m.click(x, y, butt

  • Python 实现键盘鼠标按键模拟

    有时候我们需要使用python执行一些脚本,可能需要让程序自动按键或自动点击鼠标,下面的代码实现了对键盘的模拟按键, 需要安装pypiwin32,当然也可以直接用ctypes来实现. pip install pypiwin32 安装pypiwin32. 键盘模拟 # coding=utf-8 import win32con import win32api import time key_map = {     "0": 49, "1": 50, "2&qu

  • 详解Python中键盘鼠标的相关操作

    目录 一.前言 二.pyautogui模块 三.鼠标相关操作 1.鼠标移动 2.获取鼠标位置 3.鼠标点击 4.按松鼠标 5.拖动窗口 6.上下滑动 7.小程序——鼠标操控术2.0 8.小程序——连点器 四.键盘相关操作 1.按键的按松 2.键入字符串 3.热键 4.小程序——轰炸器 5.小程序——520个我爱你 五.尾声 一.前言 恭喜你,学明白类,你已经学会所有基本知识了. 这章算是一个娱乐篇,十分简单,了解一下pyautogui模块,这算是比较好学还趣味性十足的,而且可以做许多小程序. 本

  • 详解python中的文件与目录操作

    详解python中的文件与目录操作 一 获得当前路径 1.代码1 >>>import os >>>print('Current directory is ',os.getcwd()) Current directory is D:\Python36 2.代码2 如果将上面的脚本写入到文件再运行 Current directory is E:\python\work 二 获得目录的内容 Python代码 >>> os.listdir (os.getcwd

  • Python+Selenium键盘鼠标模拟事件操作详解

    目录 元素的基本操作 鼠标键盘模拟事件操作 利用 Keys 模块模拟键盘操作事件 利用 Action 类模拟鼠标操作事件 当我们定位到具体的一个元素的时候就可以对这个元素进行具体的操作,比如之前章节所执行的 click 操作.这是最简单的操作,webdriver 还有其他的操作.比如元素的基本操作(点击.输入.清除),还有一些高级操作如鼠标键盘模拟事件.弹出框处理.多页面切换等… 这些都是需要我们了解的内容,也是在做自动化测试的时候经常遇到的一些基本场景.今天这一章节,我们就先来学习一下元素的基

  • 详解Python中Pygame键盘事件

    Pygame事件 pygame.event.EventType ''' • 事件本质上是一种封装后的数据类型(对象) • EventType是Pygame的一个类,表示事件类型 • 事件类型只有属性,没有方法 • 用户可自定义新的事件类型 ''' 事件类型及属性 事件处理函数 键盘事件及类型的使用 键盘事件及属性 pygame.event.KEYDOWN #键盘按下事件 pygame.event.KEYUP #键盘释放事件 event.unicode #按键的unicode码,平台有关,不推荐使

  • 详解Python中pyautogui库的最全使用方法

    在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库.就本人而言,我更喜欢使用pyautogui库,该库功能多,使用便利.下面给大家介绍一下pyautogui库的使用方法.在cmd命令框中输入pip3 install pyautogui即可安装该库! 常用操作 我们在pyautogui库中常常使用的方法,如下: import pyautogui pyautogui.PAUSE = 1 # 调用在执行动作后暂停的秒数,只能在执行一些pyaut

  • 详解Python中第三方库Faker

    项目开发初期,为了测试方便,我们总要造不少假数据到系统中,尽量模拟真实环境. 比如要创建一批用户名,创建一段文本,电话号码,街道地址.IP地址等等. 平时我们基本是键盘一顿乱敲,随便造个什么字符串出来,当然谁也不认识谁. 现在你不要这样做了,用Faker就能满足你的一切需求. 1. 安装 pip install Faker 2. 简单使用 >>> from faker import Faker >>> fake = Faker(locale='zh_CN') >&

  • 详解python中的IO操作方法

    目录 python文件I/O raw_input函数 input函数 打开和关闭文件 open 函数 file对象的属性 close()方法 write()方法 read()方法 Python with open as函数 python文件I/O 打印到屏幕: 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式. 读取键盘输入: Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: raw_input input raw_input函数

  • 详解Python中namedtuple的使用

    namedtuple是Python中存储数据类型,比较常见的数据类型还有有list和tuple数据类型.相比于list,tuple中的元素不可修改,在映射中可以当键使用. namedtuple: namedtuple类位于collections模块,有了namedtuple后通过属性访问数据能够让我们的代码更加的直观更好维护. namedtuple能够用来创建类似于元祖的数据类型,除了能够用索引来访问数据,能够迭代,还能够方便的通过属性名来访问数据. 接下来通过本文给大家分享python nam

  • 详解python中groupby函数通俗易懂

    一.groupby 能做什么? python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算! 对于数据的分组和分组运算主要是指groupby函数的应用,具体函数的规则如下: df[](指输出数据的结果属性名称).groupby([df[属性],df[属性])(指分类的属性,数据的限定定语,可以有多个).mean()(对于数据的计算方式--函数名称) 举例如下: print(df["评分"].groupby([df["地区"],df["类

  • 详解python中GPU版本的opencv常用方法介绍

    引言 本篇是以python的视角介绍相关的函数还有自我使用中的一些问题,本想在这篇之前总结一下opencv编译的全过程,但遇到了太多坑,暂时不太想回看做过的笔记,所以这里主要总结python下GPU版本的opencv. 主要函数说明 threshold():二值化,但要指定设定阈值 blendLinear():两幅图片的线形混合 calcHist() createBoxFilter ():创建一个规范化的2D框过滤器 canny边缘检测 createGaussianFilter():创建一个Ga

随机推荐