赞
踩
§ 0.0.0 前言
监听、操作鼠标、键盘是实现自动化的捷径,比如我实现自动化签到用到了模拟键盘操作。
pynput是监听、操控鼠标和键盘的跨平台第三方python库。
你可以通过pip insnall pynput来安装。安装时会自动下载依赖库。
接下来我会按“鼠标按键”“监听鼠标”“控制鼠标”,
“键盘按键”“监听键盘”“控制键盘”的顺序介绍它的用法。
以下为正文。
§1.0.0 鼠标按键
鼠标的按键在pynput.mouse.Button中,
有lift、right、middle还有unknown四种。
每一个按键都有两个有意义的属性:name和value。
name是该按键的名称,比如 Button.left.name == 'left';
value是记录上一次点击位置的元组。
§1.1.0 监听鼠标
有两种方法,一种是函数式、非阻塞型,另一种是语句式、非阻塞型。
先说第一种,这种是常见的教程所说的方法。
§1.1.1 pynput.mouse.Listener
以下是官网的说明示例:
import pynput, time
def on_move(x, y):
print('Pointer moved to {0}'.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:
# Stop listener
return False
def on_scroll(x, y, dx, dy):
print('Scrolled {0} at {1}'.format(
'down' if dy < 0 else 'up',
(x, y)))
# Collect events until released
with pynput.mouse.Listener(
on_move=on_move,
on_click=on_click,
on_scroll=on_scroll) as listener:
listener.join()
运行这段代码时,移动鼠标会显示其坐标,
按下鼠标按键并松开后,程序结束。
当三个函数任意一个返回False((还有就是释放Exception或继承自Exception的异常)时,就会结束进程。
可以用listener.start()和listener.stop()代替with语句。
§1.1.2 pynput.mouse.Events
个人认为,这个方法比上一个更直观。
import pynput
with pynput.mouse.Events() as event:
for i in event:
#迭代用法。
if isinstance(i, pynput.mouse.Events.Move):
#鼠标移动事件。
print(i.x, i.y)
#不要直接打印`i`,模块这里有问题,会报错。
elif isinstance(i, pynput.mouse.Events.Click):
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。