马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zltzlt 于 2020-1-2 19:23 编辑
Python 监听、控制鼠标与键盘
Python 有着数不清的第三方库,pynput 就是其中之一,它实现了监听、控制鼠标与键盘。让我们通过几个小例子学习它的基本用法。
控制鼠标
from pynput.mouse import Button, Controller
mouse = Controller()
# 读取鼠标指针在屏幕上的位置
print(f'当前鼠标指针的位置是:{mouse.position}')
# 设置鼠标指针的位置
mouse.position = (200, 200)
print(f'现在我们将鼠标指针移动到了 {mouse.position}')
# 相对于当前位置移动指针
mouse.move(100, -100)
# 按下并释放鼠标左键
mouse.press(Button.left)
mouse.release(Button.left)
# 双击鼠标左键
mouse.click(Button.left, 2)
# 向下滚动两下(滑动鼠标上的滚轮)
mouse.scroll(0, 2)
监听鼠标
from pynput import mouse
def on_move(x, y):
print(f'指针移动到了 {(x, y)}')
def on_click(x, y, button, pressed):
print(f"在 {(x, y)} {('按下' if pressed else '释放')}鼠标")
def on_scroll(x, y, dx, dy):
print(f"在 {(x, y)} 位置,鼠标滚轮向{('下' if dy < 0 else '上')}滑动")
# 开始监听
with mouse.Listener(
on_move=on_move,
on_click=on_click,
on_scroll=on_scroll) as listener:
listener.join()
# 开始监听(不堵塞线程)
listener = mouse.Listener(
on_move=on_move,
on_click=on_click,
on_scroll=on_scroll)
listener.start()
控制键盘
from pynput.keyboard import Key, Controller
keyboard = Controller()
# 按下并释放空格
keyboard.press(Key.space)
keyboard.release(Key.space)
# 键入小写字母 a
keyboard.press('a')
keyboard.release('a')
# 键入大写字母 A 的两种方式
keyboard.press('A')
keyboard.release('A')
with keyboard.pressed(Key.shift):
keyboard.press('a')
keyboard.release('a')
# 使用快捷的方法键入 "Hello World"
keyboard.type('Hello World')
监听键盘
from pynput import keyboard
def on_press(key):
try:
print(f'按键 {key.char} 被按下')
except AttributeError:
print(f'特殊按键 {key} 被按下')
def on_release(key):
print('{0} 被释放'.format(key))
# 如果按下了 <Esc> 键
if key == keyboard.Key.esc:
# 停止监听
return False
# 开始监听
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
# 开始监听(不堵塞线程)
listener = keyboard.Listener(
on_press=on_press,
on_release=on_release)
listener.start()
|