开发者

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

开发者 https://www.devze.com 2023-01-04 09:44 出处:网络 作者: ¿¿¿¡¡¡
目录一、前言二、pyautogui模块三、鼠标相关操作1、鼠标移动2、获取鼠标位置3、鼠标点击4、按松鼠标5、拖动窗口6、上下滑动7、小程序——鼠标操控术2.08、小程序——连点器四、键盘相关操作1、按
目录
  • 一、前言
  • 二、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(19编程客栈19,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)#提示
    

    效果:

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

     加上我的手速也才点了这么多,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可是左方向ilXGYOI键的意思,程序会把他转换,他会键入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秒
    

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

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

    运行效果:

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

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

    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不能整中文还能更简便。注意运行的时候把输入法改回中开发者_JAVA开发文。

    运行效果:

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

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

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

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

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

    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自增
        javascriptgui.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还是有点慢了,可以耐心等等。

    效果:

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

    五、尾声

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

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

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

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号