zoukankan      html  css  js  c++  java
  • Python控制键盘鼠标:pynput,mouse,keyboard

    mouse:顾名思义,是控制鼠标的模块,本篇不打算介绍,有兴趣可以看官网mouse

    keyboard:同样,是控制键盘的模块,可以完全控制键盘,本篇不打算介绍,源码很少,有兴趣可以看官网keyboard

    一.介绍

    pynput这个库让你可以控制和监控输入设备,它包含一个子模块来控制和监控该种输入设备:

    • pynput.mouse:包含控制和监控鼠标或者触摸板的类。

    • pynput.keyboard:包含控制和监控键盘的类。

    两个子模块的结构,两者结构相同

    二.实例

    2.1  pynput.mouse

    from pynput.mouse import Button, Controller,Listener
    
    # Controller类
    m = Controller()
    print('鼠标的坐标:{0}'.format(m.position))
    m.position = (500, 200)
    print('设置鼠标的坐标:{0}'.format(m.position))
    # 相对于当前位置移动鼠标
    m.move(m.position[0],m.position[1])
    # 按下鼠标左键以及松开鼠标左键,按下并不是点击
    m.press(Button.left)
    m.release(Button.left)
    #双击鼠标右键
    m.click(Button.right, 2)
    #滚动
    m.scroll(0, 2)
    
    
    # Listener类,监听鼠标事件
    def on_move(x, y):
        print('移动到了:{0}'.format((x, y)))
    
    def on_click(x, y, button, pressed):
        print('{0} at {1}'.format('按下' if pressed else '松开',(x, y)))
        if not pressed:
            # 停止监听
            return False
    # 监听滚动事件
    def on_scroll(x, y, dx, dy):
        print('滚动到: {0}'.format((x, y)))
    
    with Listener(on_move=on_move,on_click=on_click,on_scroll=on_scroll) as listener:
        listener.join()
    pynput.mouse

    运行结果:

    2.2  pynput.keyboard

    keyboard是支持线程的

    from pynput.keyboard import Key, Controller,Listener
    
    keyboard = Controller()
    
    # 按下空格和释放空格
    keyboard.press(Key.space)
    keyboard.release(Key.space)
    
    # 按下a键和释放a键
    keyboard.press('a')
    keyboard.release('a')
    # 按下shift,但是物理端不换,只对本次设置有效
    with keyboard.pressed(Key.shift):
        keyboard.press('a')
        keyboard.release('a')
        keyboard.press('b')
    keyboard.type('Hello World')
    
    
    
    
    def on_press(key):
        print('{0} 被按下'.format(key))
    
    def on_release(key):
        print('{0} 被释放'.format(key))
        if key == Key.esc:
            return False
    # 创建监听
    with Listener(on_press=on_press,on_release=on_release) as listener:
        listener.join()
    pynput.keyboard

    运行结果:

     

     reference: pynput

    每天进步一点,遇见更好的你!
  • 相关阅读:
    Spring Cloud云架构
    Spring Cloud云架构
    Spring Cloud云架构
    KafKa集群安装详细步骤
    Spring Cloud云架构
    matlab规定小数点保留4位且非科学计数法格式存储txt
    Test checkout of feature 'Compiler' failed 解决方法(转载)
    摄像机内参相关(3ds max)
    针孔相机模型和变形
    关于Matlab里面的四个取整(舍入)函数:Floor, Ceil, Fix, Round的解释(转)
  • 原文地址:https://www.cnblogs.com/ganiner/p/9975946.html
Copyright © 2011-2022 走看看