• 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

    每天进步一点,遇见更好的你!
  • 相关阅读:
    松翰单片机_SN8F570310——INTR
    松翰单片机_SN8F570310——EINT
    松翰单片机_SN8F570310——PWM
    松翰单片机_SN8F570310——SPI
    松翰单片机_SN8F570310——IIC
    松翰单片机_SN8F570310——UART
    全志_input
    全志_ADC驱动
    git随笔
    全志_外部中断
  • 原文地址:https://www.cnblogs.com/ganiner/p/9975946.html
Copyright © 2020-2023  润新知