当前位置: 首页 > news >正文

python——pynput

pynput 是一个 Python 库,用于控制和监听键盘与鼠标输入。它在 Windows、macOS 和 Linux 上都可以工作,为用户提供了一个跨平台的输入事件处理方式。pynput 包含两个主要模块:keyboardmouse,分别用于处理键盘和鼠标事件。

主要API介绍:

键盘模块(keyboard
  • KeyboardListener:监听键盘事件。
  • Controller:控制键盘输入。
鼠标模块(mouse
  • MouseListener:监听鼠标事件。
  • Controller:控制鼠标移动和点击。

常用API函数:

键盘API
  • keyboard.Controller.press(key): 按下键。
  • keyboard.Controller.release(key): 释放键。
  • keyboard.Controller.type(string): 输入字符串。
  • keyboard.Listener(on_press=None, on_release=None): 监听键盘按键事件。
鼠标API
  • mouse.Controller.position: 获取当前鼠标位置。
  • mouse.Controller.move(x, y): 移动鼠标。
  • mouse.Controller.press(button): 按下鼠标按钮。
  • mouse.Controller.release(button): 释放鼠标按钮。
  • mouse.Controller.click(button, n): 单击鼠标按钮n次。
  • mouse.Listener(on_click=None, on_scroll=None, on_move=None): 监听鼠标事件。

具体示例:

键盘示例
from pynput.keyboard import Key, Listener, Controller# 创建键盘控制器
keyboard = Controller()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 == Key.esc:# Stop listenerreturn False# Collect events until released
with Listener(on_press=on_press, on_release=on_release) as listener:listener.join()# 模拟键盘输入
keyboard.type("Hello World!")
keyboard.press(Key.enter)
keyboard.release(Key.enter)
鼠标示例
from pynput.mouse import Button, Controller, Listener# 创建鼠标控制器
mouse = Controller()def on_move(x, y):print('Pointer moved to {0}'.format((x, y)))def on_click(x, y, button, pressed):if pressed:print('Mouse clicked at ({0}, {1}) with {2}'.format(x, y, button))def on_scroll(x, y, dx, dy):print('Mouse scrolled at ({0}, {1})({2}, {3})'.format(x, y, dx, dy))# Collect events until released
with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:listener.join()# 模拟鼠标移动和点击
mouse.position = (100, 200)
mouse.click(Button.left, 1)

注意事项:

  • 在使用 pynput 监听键盘和鼠标事件时,程序会阻塞直到监听结束。
  • pynput 可能需要管理员权限才能运行,特别是在 Windows 上。
  • pynput 的事件监听器可以设置为非阻塞模式,但默认是阻塞的。

以上就是 pynput 的基础使用方法和一些常见API的介绍。

http://www.lryc.cn/news/405912.html

相关文章:

  • [用AI日进斗金系列]用码上飞在企微接单开发一个项目管理系统!
  • 《JavaEE篇》--多线程(2)
  • 防爆智能手机如何助力电气行业保驾护航?
  • 24.7.24数组|那几个课后得做的题
  • 03Spring底层架构核心概念解析
  • Vue学习---vue 防抖处理函数,是处理什么场景
  • 力扣爆刷第166天之TOP100五连刷96-100(单词拆分、回溯、旋转数组)
  • 2024在线PHP加密网站源码
  • 网络驱动移植(RTL8189)
  • go语言中map学习
  • 【C#】| 与 及其相关例子
  • 【数据结构 | 哈希表】一文了解哈希表(散列表)
  • go创建对象数组
  • Golang | Leetcode Golang题解之第278题第一个错误的版本
  • 自动化网络爬虫:如何它成为提升数据收集效率的终极武器?
  • 软件测试---测试需求分析
  • Android11 framework 禁止三方应用通过广播开机自启动-独立方案
  • Node:解决Error: error:0308010C:digital envelope routines::unsupported的解决方法
  • spring boot(学习笔记第十四课)
  • Android 11 Unable to start/bind service
  • 走难而正确的路并持之以恒
  • 规范:Redis规范
  • 比较 WordPress 、 Baklib 和 BetterDocs
  • Redis 哨兵搭建
  • HackTheBox--Knife
  • Linux_实现TCP网络通信
  • 正则表达式与文本三剑客之grep
  • 微信小程序开发:项目程序代码构成
  • 【云原生】Kubernetes微服务Istio:介绍、原理、应用及实战案例
  • 【Docker】Docker-consul容器服务自动发现与注册