当前位置: 首页 > 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的介绍。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • java面试-场景题
  • 嵌入式C/C++、FreeRTOS、STM32F407VGT6和TCP:智能家居安防系统的全流程介绍(代码示例)
  • Pycharm 和虚拟环境的那些事?
  • 【SASS/SCSS(三)】样式的复用与动态计算(@mixin和@function)
  • Qt编程技巧总结篇(6)-QCustomPlot绘图篇(一)
  • 客户在哪儿AI与其他服务于B端的科技产品有何不同
  • 华为ensp中ISIS原理与配置(超详细)
  • centos系统mysql数据库压缩备份与恢复
  • 宝塔国际版Docker Manager 3.4获取镜像列表报错解决办法
  • 百度,有道,谷歌翻译API
  • CRM客户管理系统是什么?如何利用CRM盘活老客户?
  • ASPICE在汽车软件开发中的作用
  • 使用水星Mecury人形机器人搭建VR遥操作控制平台!
  • 模方怎么把模型设置为初始的蓝色半透明模式?
  • Three 三维矩阵(Matrix3)、四维矩阵(Matrix4)
  • Bytom交易说明(账户管理模式)
  • create-react-app项目添加less配置
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Redis 懒删除(lazy free)简史
  • vue--为什么data属性必须是一个函数
  • Zsh 开发指南(第十四篇 文件读写)
  • 工程优化暨babel升级小记
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 力扣(LeetCode)357
  • 前嗅ForeSpider采集配置界面介绍
  • 全栈开发——Linux
  • 如何使用 JavaScript 解析 URL
  • 微信小程序:实现悬浮返回和分享按钮
  • 一、python与pycharm的安装
  • 自定义函数
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • MPAndroidChart 教程:Y轴 YAxis
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • Spring第一个helloWorld
  • ​Python 3 新特性:类型注解
  • ​插件化DPI在商用WIFI中的价值
  • ​渐进式Web应用PWA的未来
  • ​虚拟化系列介绍(十)
  • "无招胜有招"nbsp;史上最全的互…
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (分布式缓存)Redis哨兵
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (图)IntelliTrace Tools 跟踪云端程序
  • (五)IO流之ByteArrayInput/OutputStream
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • ./和../以及/和~之间的区别
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET MVC之AOP
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .Net各种迷惑命名解释
  • .NET构架之我见
  • .NET值类型变量“活”在哪?
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!