zoukankan      html  css  js  c++  java
  • Python pynput监控、控制键盘鼠标

    原文链接:Python控制键盘鼠标pynput的详细用法

    作者:botoo

    pynput这个库让你可以控制和监控输入设备。

    对于每一种输入设备,它包含一个子包来控制和监控该种输入设备:

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

    地址:https://pypi.python.org/pypi/pynput

    基本用法介绍:

    from pynput.mouse import Button, Controller
    import time 
     
    mouse = Controller()
    print(mouse.position)
    time.sleep(3)
    print('The current pointer position is {0}'.format(mouse.position))
     
     
    #set pointer positon
    mouse.position = (277, 645)
    print('now we have moved it to {0}'.format(mouse.position))
     
    #鼠标移动(x,y)个距离
    mouse.move(5, -5)
    print(mouse.position)
     
    mouse.press(Button.left)
    mouse.release(Button.left)
     
    #Double click
    mouse.click(Button.left, 1)
     
    #scroll two steps down
    mouse.scroll(0, 500)

    监控鼠标事件 :

    from pynput import mouse
     
    def on_move(x, y ):
     print('Pointer moved to {o}'.format(
      (x,y)))
     
    def on_click(x, y , button, pressed):
     print('{0} at {1}'.format('Pressed' if pressed else 'Released', (x, y)))
     if not pressed:
      return False
     
    def on_scroll(x, y ,dx, dy):
     print('scrolled {0} at {1}'.format(
      'down' if dy < 0 else 'up',
      (x, y)))
     
    while True:
     with mouse.Listener( no_move = on_move,on_click = on_click,on_scroll = on_scroll) as listener:
      listener.join()

    键盘输入用法:

    from pynput.keyboard import Key, Controller
     
    keyboard = Controller()
    # 按下空格和释放空格
    #Press and release space
    keyboard.press(Key.space)
    keyboard.release(Key.space)
    # 按下a键和释放a键
    #Type a lower case A ;this will work even if no key on the physical keyboard is labelled 'A'
    keyboard.press('a')
    keyboard.release('a')
     
    #Type two upper case As
    keyboard.press('A')
    keyboard.release('A')
    # or 
    with keyboard .pressed(Key.shift):
     keyboard.press('a')
     keyboard.release('a')
     
    #type 'hello world ' using the shortcut type method
    keyboard.type('hello world')

    键盘监听:

    from pynput import keyboard
     
    def on_press(key):
     try:
      print('alphanumeric key {0} pressed'.format(key.char))
     except AttributeError:
      print('special key {0} pressed'.format(key))
     
    def on_release(key):
     print('{0} released'.format(key))
     if key == keyboard.Key.esc:
      return False
     
    while True:
     with keyboard.Listener(
      on_press = on_press,
      on_release = on_release) as listener:
      listener.join()
     

    对于鼠标来说,api就上面几个。但是对于键盘来说还要别的,详细的查看:http://pythonhosted.org/pynput/index.html

  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    Oracle数据库基础
    软件项目开发模式——三层模式
    JavaWeb——Ajax与MVC学习总结
    JavaWeb——EL及JSTL学习总结
    JavaWeb——过滤器及监听器
    JavaWeb——Servlet开发
  • 原文地址:https://www.cnblogs.com/-wenli/p/12291796.html
Copyright © 2011-2022 走看看