监听鼠标操作事件+监听键盘操作事件+复原操作(pynput)操作windows

2024-01-12 02:20

本文主要是介绍监听鼠标操作事件+监听键盘操作事件+复原操作(pynput)操作windows,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、监听鼠标


from pynput import mouseif __name__ == '__main__':def on_move(x, y):print('Mouse moved to ({}, {})'.format(x, y))def on_click(x, y, button, pressed):# "Pressed"表示鼠标按键被按下# "Released"表示鼠标释放action = 'Pressed' if pressed else 'Released'print('{} at ({}, {}) with {}'.format(action, x, y, button))def on_scroll(x, y, dx, dy):print('Scrolled at ({}, {}) with delta ({}, {})'.format(x, y, dx, dy))# 创建监听器对象mouse_listener = mouse.Listener(on_move=on_move,on_click=on_click,on_scroll=on_scroll)# 启动监听器mouse_listener.start()# 阻塞主线程,保持监听 也可以使用 time.sleep(5)mouse_listener.join()#mouse_listener.stop() 为停止

二、监听键盘

from pynput import keyboard# 全局变量,用于控制监听器是否继续运行
running = Truedef on_press(key):try:print('Key {} pressed.'.format(key.char))except AttributeError:print('Special key {} pressed.'.format(key))def on_release(key):print('Key {} released.'.format(key))if key == keyboard.Key.esc:# 如果按下了Esc键,停止监听global runningrunning = Falsereturn False# 创建监听器对象
keyboard_listener = keyboard.Listener(on_press=on_press,on_release=on_release
)# 启动监听器
keyboard_listener.start()# 阻塞主线程 或者睡眠几秒 或者循环 while running: pass
keyboard_listener.join()# 停止监听器
#keyboard_listener.stop()

三、还原操作

这里由于之前监听都监听过了那么还原只需要用把监听到的操作用不同类型记录下来就行

举个例子

在这里插入图片描述
在这里插入图片描述

1、鼠标移动

from pynput import mouse# 获取当前鼠标位置
current_position = mouse.Controller().position# 移动鼠标到新的位置
new_position = (0, 0)
mouse.Controller().position = new_position

2、点击事件&&鼠标按住不松和松开

import time
from pynput.mouse import Button, Controller# 鼠标控制器
mouse = Controller()# 右击; 
mouse.click(Button.right, 1)
#说明:可以控制点击次数,这里1次。# 按下和释放右键 === 等价于:右击
mouse.press(Button.right)
mouse.release(Button.right)# 双击左键
mouse.click(Button.left, 2)
#说明:可以控制点击次数,双击这里传入2次。

3、鼠标滚轮滚动

import time
from pynput.mouse import Button, Controller# 鼠标控制器
mouse = Controller()# 滚动鼠标滚轮
# mouse.scroll(x, y)
# 说明:Mac电脑,y>0,向上滚动内容。y<0,向下滚动内容

4、键盘事件

from pynput import keyboard
# 输入正常的内容输入的内容
keyboard.Controller().type("输入的内容")# 按下  可输入文字 但是我这边尝试未能一直按住建议换成其他操作包完成按下松开
keyboard.Controller().press(keyboard.Key.enter)
# 释放
keyboard.Controller().release(keyboard.Key.enter)

这篇关于监听鼠标操作事件+监听键盘操作事件+复原操作(pynput)操作windows的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/596500

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Java Multimap实现类与操作的具体示例

《JavaMultimap实现类与操作的具体示例》Multimap出现在Google的Guava库中,它为Java提供了更加灵活的集合操作,:本文主要介绍JavaMultimap实现类与操作的... 目录一、Multimap 概述Multimap 主要特点:二、Multimap 实现类1. ListMult

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示