1、下载
python -m pip install pynput
2、监听鼠标事件
from pynput import mouse
def mouse_move(x, y):
"""
鼠标移动事件
:param x: 横坐标
:param y: 纵坐标
:return:
"""
pass
# print(f'鼠标移动X,Y:{x},{y}')
def mouse_click(x, y, button, pressed):
"""
鼠标点击事件
:param x: 横坐标
:param y: 纵坐标
:param button: 按钮枚举对象 Button.left 鼠标左键 Button.right 鼠标右键 Button.middle 鼠标中键
:param pressed: 按下或者是释放,按下是True释放是False
:return:
"""
pass
if pressed:
print('按下鼠标')
print(x)
print(y)
print(button)
else:
print('释放鼠标')
print(x)
print(y)
print(button)
print(''.center(20, '*'))
if 500 <= x <= 550:
print('返回False结束监听')
return False
def mouse_scroll(x, y, dx, dy):
"""
鼠标滚动事件
:param x: 横坐标
:param y: 纵坐标
:param dx:滚轮的横坐标方向的移动量,0未移动,1向前面滚动和-1向后面滚动
:param dy:滚轮的纵坐标方向的移动量,0未移动,1向前面滚动和-1向后面滚动
:return:
"""
pass
print(x)
print(y)
print(dx)
print(dy)
# 监听鼠标事件
with mouse.Listener(
on_move=mouse_move, # 鼠标移动事件
on_click=mouse_click, # 鼠标点击事件
on_scroll=mouse_scroll # 鼠标滚动事件
) as listener:
listener.join()
3、监听键盘事件
from pynput.keyboard import Key
from pynput.keyboard import Listener
def keyboard_press(key):
print(key)
print(f'key:{key}')
if Key.space:
print('按下了空格')
def keyboard_release(key):
print(f'key:{key}')
if key == Key.esc: # 如果按下了ESC键,则结束监听
return False
with Listener(on_press=keyboard_press,
on_release=keyboard_release) as listener:
listener.join()
4、控制鼠标
from pynput.mouse import Button
from pynput.mouse import Controller
mouse = Controller()
position = mouse.position # 获取当前的鼠标位置
print('当前的鼠标位置:{}'.format(position))
mouse.position = (1017, 236) # 设置鼠标的位置,移动鼠标到该位置
print('移动鼠标到坐标点:{}'.format(mouse.position))
mouse.move(5, -5) # 相对于当前鼠标位置位置移动鼠标
mouse.press(Button.left) # 按下鼠标左键
mouse.release(Button.left) # 释放鼠标左键
mouse.press(Button.right) # 按下鼠标右键
mouse.release(Button.right) # 释放鼠标右键
mouse.press(Button.middle) # 按下鼠标中键
mouse.release(Button.middle) # 释放鼠标中键
mouse.click(Button.left, 2) # 双击鼠标左键
mouse.scroll(0, 2) # 向下滚动滚轮两次
5、控制键盘
from pynput.keyboard import Key, Controller
keyboard = Controller()
# Press and release space
keyboard.press(Key.space)
keyboard.release(Key.space)
# 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')
with keyboard.pressed(Key.shift):
keyboard.press('a')
keyboard.release('a')
# Type 'Hello World' using the shortcut type method
keyboard.type('Hello World')
6、监听键盘时可以这样看这个key有哪些属性
按下的键不同,key的属性还不一样!!!!!!!!!!!!
# -*- encoding=utf-8 -*-
from pynput.keyboard import Key
from pynput.keyboard import Listener
from pynput.mouse import Controller
def keyboard_press(key):
print(f'按下的key:{key}')
print(key.__dict__)
if hasattr(key, 'char'):
print(f'char:{key.char}')
else:
print('没有char属性')
def keyboard_release(key):
print(f'key:{key}')
if key == Key.esc: # 如果按下了ESC键,则结束监听
return False
if __name__ == '__main__':
mouse = Controller()
with Listener(on_press=keyboard_press,
on_release=keyboard_release) as listener:
listener.join()
官网 https://pythonhosted.org/pynput/