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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM