[python] 我用脚本实现了一个F1 F2代替ctrl+c复制 ctrl+v粘贴的软件 【Clipboard Tool】
Clipboard Tool 的奇思妙想1. 概述发现自己在工作时经常会用到Ctrl CCtrl V,还有企业微信的AltShiftAl来截图我想使用python 热键脚本实现代替所以我想能用到F1代替复制F2代替粘贴F3代替企业微信的截图那就完美了。手指只需要放在这三个键上就不用老是移动了天才的想法。其次就要研究Windows 托盘驻留工具通过全局热键替代CtrlC/CtrlV及企业微信截图快捷键AltShiftA。纯 Python 实现可打包为单文件 exe 免环境分发。不吊胃口直接软件的截图双击即可直接运行再windows右下角托盘区点击可以看到下图图标即可开始使用了软件会直接同步给你们免费使用2. 构思的架构设计2.1 整体架构图2.2 模块职责模块职责Hotkey Module注册/注销全局热键绑定回调函数Tray Icon托盘图标绘制、菜单交互、悬浮提示Keyboard Simulator模拟按键发送驱动 Windows 输入2.3 数据流用户按下 F1 → keyboard 库底层 Hook (WH_KEYBOARD_LL) 捕获 → suppressTrue 拦截按键不传递到活动窗口 → 回调 on_f1() 执行 → keyboard.send(ctrlc) 通过 SendInput API 发送 → 活动窗口收到 CtrlC执行复制3. 代码设计3.1 文件结构clipboard_tool.py # 主程序入口所有功能单文件 ├── create_tray_image() # 用 Pillow 绘制 64×64 剪贴板图标 ├── start_tray() # 初始化 pystray 托盘图标和菜单 ├── on_tray_exit() # 退出清理卸载钩子、停止托盘、退出进程 ├── on_f1() # F1 回调发送 CtrlC ├── on_f2() # F2 回调发送 CtrlV ├── on_f3() # F3 回调发送 AltShiftA └── main() # 注册热键 → 启动托盘阻塞3.2 核心代码说明热键注册keyboard.add_hotkey(f1,on_f1,suppressTrue)keyboard库在底层注册WH_KEYBOARD_LL钩子suppressTrue使回调返回非零值阻止按键继续传递回调在钩子线程中执行不阻塞主线程按键模拟defon_f1():keyboard.send(ctrlc)keyboard.send()调用 WindowsSendInputAPI模拟完整的按键按下和释放事件目标窗口无差别接收与应用真实按键效果一致托盘tray_iconpystray.Icon(clipboard_tool,img,Clipboard Tool,menu)tray_icon.run()pystray基于ctypes调用 Win32 Shell API (Shell_NotifyIcon)icon.run()阻塞主线程内部运行消息循环热键回调在独立钩子线程运行与消息循环不冲突退出逻辑defon_tray_exit():keyboard.unhook_all()iftray_icon:tray_icon.stop()os._exit(0)unhook_all()— 移除所有键盘钩子tray_icon.stop()— 删除托盘图标退出消息循环os._exit(0)— 强制终止进程避免 tkinter 或其他线程阻止退出3.3 依赖设计依赖版本选型理由keyboard≥0.13.5跨平台全局热键支持 suppress 拦截API 简洁pystray≥0.19.5纯 Python 托盘实现无额外 UI 框架依赖Pillow≥10.0.0绘制托盘图标pystray 要求的图片格式不依赖tkinter/PyQt/wxPython保持打包体积最小。4. 打包方案4.1 PyInstaller 配置pyinstaller--onefile--noconsole--nameClipboardTool clipboard_tool.py参数作用--onefile输出单文件 exe--noconsole不显示控制台窗口后台运行--name ClipboardTool指定输出文件名4.2 打包产物dist/ClipboardTool.exe ├── Python 解释器 (python314.dll) ├── 标准库 (base_library.zip) ├── 第三方依赖 (keyboard, pystray, Pillow...) ├── 字节码 (clipboard_tool.py → .pyc) └── 引导程序 (runw.exe → 解压 执行)4.3 分发说明单文件直接双击运行无需安装 Python 或任何依赖历史记录文件clipboard_history.json如有生成在 exe 同目录5. 使用说明5.1 快捷键一览按键发送的键效果F1CtrlC复制选中内容F2CtrlV粘贴F3AltShiftA触发企业微信截图5.2 托盘操作左键/右键点击托盘图标弹出菜单菜单显示快捷键说明灰色不可点击点击Exit完全退出6. 注意事项keyboard库需要管理员权限才能注册全局钩子打包后的 exe 可尝试以管理员身份运行企业微信必须正在运行F3 发送的AltShiftA才能被其捕获如果热键与其他程序冲突修改keyboard.add_hotkey()的第一个参数即可想要获得源码exe运行搜索绿泡泡 “码来的小朋友”

相关新闻

JAVA白皮书

JAVA白皮书

这个世界不会是强者恒强,后来者总能居上,只要我们在路上,就总会赢 一、打包篇 在 Spring Boot 项目中,将 resource/lib 目录下的 JAR 包引入 pom.xml <dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-clickhouse<…

2026/7/17 6:30:32阅读更多 →
小众实用办公工具合集|搞定批量文档、文件分享、文本纠错全覆盖

小众实用办公工具合集|搞定批量文档、文件分享、文本纠错全覆盖

日常办公和文字创作中&#xff0c;很多耗时费力的工作&#xff0c;其实靠小众工具就能轻松解决。不管是批量整理Word文档、临时传输文件、文本数据标注&#xff0c;还是PDF格式转换、文字纠错&#xff0c;手动操作不仅效率低&#xff0c;还容易出错。今天给大家分享六款超实用的…

2026/7/17 6:30:32阅读更多 →
具身VLA实战指南:从视觉语言模型到机械臂实时控制

具身VLA实战指南:从视觉语言模型到机械臂实时控制

1. 这不是一篇“综述”&#xff0c;而是一份可直接上手调试的算法进展实录具身VLA——这个词最近半年在机器人实验室和AI团队晨会里出现的频率&#xff0c;已经快赶上“多模态”“端到端”这些老熟人了。但和那些被讲烂的概念不同&#xff0c;“具身VLA”背后没有PPT式的空泛定…

2026/7/17 6:30:32阅读更多 →
Unity Addressable资源管理框架:从核心概念到工程实践

Unity Addressable资源管理框架:从核心概念到工程实践

1. 项目概述&#xff1a;为什么我们需要Addressable系统&#xff1f;如果你在Unity项目里做过资源管理&#xff0c;大概率经历过这样的场景&#xff1a;项目初期&#xff0c;所有资源都放在Resources文件夹里&#xff0c;加载用Resources.Load&#xff0c;感觉挺方便。但随着项…

2026/7/17 7:35:36阅读更多 →
惠普游戏本系统安装与优化全指南

惠普游戏本系统安装与优化全指南

1. 惠普暗影精灵与光影精灵系列电脑系统安装前的准备工作在开始安装系统前&#xff0c;我们需要做好充分的准备工作。首先需要明确的是&#xff0c;惠普暗影精灵&#xff08;OMEN&#xff09;和光影精灵&#xff08;VICTUS&#xff09;系列虽然都是游戏本&#xff0c;但在硬件配…

2026/7/17 7:35:36阅读更多 →
Windows SYSTEM账户权限管理与安全实践

Windows SYSTEM账户权限管理与安全实践

1. SYSTEM账户的本质与权限层级Windows系统中的SYSTEM账户&#xff08;NT AUTHORITY\SYSTEM&#xff09;是操作系统内核使用的最高权限账户&#xff0c;其权限级别甚至超过Administrator。这个账户默认不显示在用户管理界面中&#xff0c;也不提供交互式登录功能&#xff0c;主…

2026/7/17 7:35:36阅读更多 →
基于OpenHarmony的多模态智能门锁系统设计与实现

基于OpenHarmony的多模态智能门锁系统设计与实现

1. 项目背景与核心需求智能门锁作为传统机械锁的升级方案&#xff0c;近年来在安全性、便捷性和智能化方面持续演进。当前主流智能门锁普遍采用指纹、密码或NFC等单一认证方式&#xff0c;存在生物特征识别率不稳定、备用开锁方案体验割裂等问题。本项目基于小凌派RK2206开发板…

2026/7/17 7:35:36阅读更多 →
Windows与Linux双系统引导管理实战指南

Windows与Linux双系统引导管理实战指南

1. 双系统引导管理概述在Windows环境下管理双系统启动项是许多开发者和技术爱好者的刚需。当我们在同一台机器上安装Windows和Linux双系统时&#xff0c;通常会遇到启动菜单缺失Linux选项的情况。这并非系统安装失败&#xff0c;而是Windows的引导管理器&#xff08;Boot Manag…

2026/7/17 7:35:36阅读更多 →
DownKyi项目法律合规性分析:开源视频下载工具的法律边界与用户指南

DownKyi项目法律合规性分析:开源视频下载工具的法律边界与用户指南

DownKyi项目法律合规性分析&#xff1a;开源视频下载工具的法律边界与用户指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去…

2026/7/17 7:30:36阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比&#xff1a;全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时&#xff0c;第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/16 8:28:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件&#xff1a;5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/16 6:53:04阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL&#xff1a;跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/16 12:02:41阅读更多 →
VS Code 高效配置与个性化定制全攻略

VS Code 高效配置与个性化定制全攻略

1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器&#xff0c;VS Code 的默认配置已经能满足基本需求&#xff0c;但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间&#xff0c;期间尝试过各种配置方案&#xff0c;总结出这套适合大多数…

2026/7/17 0:00:01阅读更多 →
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…

2026/7/17 0:00:01阅读更多 →
WinRAR高效配置指南:从基础安装到高级压缩实战

WinRAR高效配置指南:从基础安装到高级压缩实战

前几天帮同事处理一个客户发来的压缩包&#xff0c;解压时系统自带的工具弹出一串乱码&#xff0c;换用 WinRAR 却顺利打开了。这种看似简单的场景&#xff0c;恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具&#xff0c;真正价…

2026/7/17 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/16 20:13:14阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/16 8:58:42阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/16 17:10:26阅读更多 →