python --监听鼠标事件

import pyautogui
from pynput import mouse, keyboardpyautogui.FAILSAFE =Falseclass MouseMonitor:def __init__(self):self.mouse = mouse.Controller()self.lock = Truedef on_move(self, x, y):'''鼠标位移时回调函数'''if self.lock:print('11')pyautogui.moveTo(500, 500)self.lock = Falsedef on_click(self, x, y, button, pressed):# 在鼠标点击时被调用# 这里可以添加你想要执行的代码action = "Pressed" if pressed else "Released"print(f"Mouse {action} at ({x}, {y}) with {button}")def on_scroll(self, x, y, dx, dy):# 在鼠标滚动时被调用# 这里可以添加你想要执行的代码print(f"Mouse scrolled at ({x}, {y}) with delta ({dx}, {dy})")def on_press(self, key):# 返回False来拦截按键输入try:print(key.char)except Exception:print(key)# return Falsereturn Truedef start_monitoring(self):# 监听鼠标事件l1 = mouse.Listener(on_move=self.on_move, on_click=self.on_click, on_scroll=self.on_scroll, on_press=self.on_press)l2 = keyboard.Listener(on_press=self.on_press)l1.start()l2.start()l1.join()l2.join()if __name__ == "__main__":mouse_monitor = MouseMonitor()mouse_monitor.start_monitoring()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/849903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 纯虚函数 virtual = 0

上代码,看一下下面类的封装: class BlockerBase {public:virtual ~BlockerBase() default;virtual void Reset() 0;virtual void ClearObserved() 0;virtual void ClearPublished() 0;virtual void Observe() 0;virtual bool IsObservedEmpty() co…

UI学习笔记(一)

UI学习 一:UIView基础frame属性隐藏视图对象:UIView的层级关系 二:UIWindow对象三:UIViewController基础UIViewController使用 四:定时器与视图移动五:UISwitch控件六:滑动条和进度条七&#xf…

VMware给没安装VMTools的系统封装ISO以送入文件

VMware给没安装VMTools的系统封装ISO以送入文件,其实不需要其它工具 VMware自带mkisofs 2.01,不过mkisofs 2.01已经停止更新,最大的问题是不支持中文,也不支持UEFI引导记录,但一般已经够用了,除此之外还可…

跨库数据同步 SYNC data

1.exp imp 由于DBV行不通 2. 直接使用pl/sql 的导入导出,导出insert脚本肯定不现实,导成专用pde文件,发现24小时只能导入1000多万表(基本每两三分钟10000)。 3.使用expdp impdp, 遇到的问题(imperva会拦截…

2021年vue面试题整理(万字解析)

一、对MVVM的理解 MVVM分为Model、View、ViewModel。 Model 代表数据模型,数据和业务逻辑都在Model层中定义;泛指后端进行的各种业务逻辑处理和数据操控,对于前端来说就是后端提供的 api 接口。 View 代表UI视图,负责数据的展示…

默认launcher

目录 前提代码 前提 刷机后开机提示选择launcher应用,此时设备中有至少两个apk配置有属性,想要开机自动进入launcher,可以通过修改ResolverActivity,在开机时默认选择指定的launcher程序 代码 //frameworks/base/core/java/com/android/internal/app/…

【Python数据分析--Numpy库】Python数据分析Numpy库学习笔记,Python数据分析教程,Python数据分析学习笔记(小白入门)

一,Numpy教程 给大家推荐一个很不错的笔记,个人长期学习过程中整理的 Python超详细的学习笔记共21W字点我获取 1-1 安装 1-1-1 使用已有的发行版本 对于许多用户,尤其是在 Windows 上,最简单的方法是下载以下的 Python 发行版…

java 8 新特性CompletableFuture使用

准备工作&#xff1a;定义一个线程池 ExecutorService pool Executors.newFixedThreadPool(3,(Runnable r)->{Thread tnew Thread(r);t.setDaemon(true);return t;});一、执行方式 1、对于有返回值的 CompletableFuture<String> futureCompletableFuture.supplyAsync…

Swift 序列(Sequence)排序面面俱到 - 从过去到现在(一)

概览 在任何语言中对序列(或集合)元素的排序无疑是一种司空见惯的常规操作,在 Swift 语言里自然也不例外。序列排序看似简单,实则“暗藏玄机”。 要想真正掌握 Swift 语言中对排序的“各种姿势”,我们还得从长计议。不如就先从最简单的排序基本功开始聊起吧。 在本篇博…

【十大排序算法】插入排序

插入排序&#xff0c;如一位细心的整理者&#xff0c; 她从序列的左端开始&#xff0c; 挨个将元素归位。 每当她遇到一个无序的元素&#xff0c; 便将它插入已经有序的部分&#xff0c; 直至所有元素有序排列。 她不张扬&#xff0c;却有效率&#xff0c; 用自己的方式&…

探索HTML5新Input类型:重塑表单交互的未来

随着HTML5标准的演进&#xff0c;表单设计迎来了重大革新&#xff0c;其中最引人注目的莫过于一系列新的input类型。这些新类型不仅简化了前端开发&#xff0c;提升了用户体验&#xff0c;还增强了网页表单的数据验证能力。然而&#xff0c;值得注意的是&#xff0c;不同浏览器…

什么是umi

UMI&#xff08;Umi Next.js Inspired Middleware&#xff09;是一个基于 React 的企业级前端应用框架&#xff0c;由阿里巴巴团队开发和维护。UMI 框架结合了 React、Webpack、Babel、Dva&#xff08;一个基于 Redux 和 redux-saga 的数据流方案&#xff09;等主流前端技术&am…

pdf文件在线压缩网站,pdf文件在线压缩工具软件

在数字化时代的今天&#xff0c;PDF文件已经成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;随着PDF文件的广泛使用&#xff0c;其文件大小问题也日益凸显。过大的PDF文件不仅占用了大量的存储空间&#xff0c;而且在传输和共享过程中也往往面临诸多不便。因此&am…

SylixOS网卡多 IP 配置

概述 网卡多 IP 是指在同一个网络接口上配置和绑定多个 IP 地址。 引进网卡多 IP 的目的主要有以下几个&#xff1a; 提供服务高可用性。通过在同一接口绑定多个 IP 地址&#xff0c;然后在服务端使用这些 IP 地址启动多个服务实例。这样在任意一 IP 出现问题时&#xff0c;可…

Redis学习(十二)Redis的三种删除策略

目录 一、背景二、Redis 的三种删除策略2.1 定时删除&#xff08;用CPU换内存空间&#xff09;2.2 定期删除2.3 惰性删除&#xff08;用内存换CPU性能&#xff09; 三、总结 一、背景 我们都知道 Redis 是一种内存数据&#xff0c;所有的数据均存储在内存中&#xff0c;可以通…

Android 代码打印meminfo

旨在替代adb shell dumpsys meminfo packageName&#xff0c;在log打印meminfo&#xff0c;以便分析内存情况 ActivityManager.MemoryInfo memoryInfo new ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(memoryInfo); long totalMemory Runtime.getRuntime(…

大数据环境搭建@Hive编译

Hive3.1.3编译 1.编译原因1.1Guava依赖冲突1.2开启MetaStore后运行有StatsTask报错1.3Spark版本过低 2.环境部署2.1jdk安装2.2maven部署2.3安装图形化桌面2.4安装Git2.5安装IDEA 3.拉取Hive源码4.Hive源码编译4.1环境测试1.测试方法——编译2.问题及解决方案&#x1f4a5;问题1…

【设计模式】结构型-装饰器模式

在代码的海洋深处迷离&#xff0c;藏匿着一片神奇之地。那里有细腻的线条交错&#xff0c;是装饰器的奇妙艺术。 文章目录 一、登录的困境二、装饰器模式三、装饰器模式的核心组成部分四、运用装饰器模式五、装饰器模式的应用场景六、小结推荐阅读 一、登录的困境 假设我们有…

如何使用Vue模块实现电子书管理系统的分类管理功能?

如何使用Vue模块实现电子书管理系统的分类管理功能&#xff1f; 在开发电子书管理系统时&#xff0c;分类管理是一个非常重要的功能。本文将介绍如何使用Vue模块来实现这个功能。以下是具体的实现步骤&#xff1a; 1. 新增工具文件 首先&#xff0c;我们需要在util包下建立一…

YOLOv5改进总目录 | backbone、Neck、head、损失函数,注意力机制上百种改进技巧

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏地址&#xff1a; YOLOv5改进入门——持续更新各种有效涨点方法 点击即可跳转 报错 解决Yolov5的RuntimeError: result type Float can…