news 2026/10/18 6:19:19

Windows 程序坞拖文件夹就能用:yyzTools 程序坞拖拽建项设计与实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows 程序坞拖文件夹就能用:yyzTools 程序坞拖拽建项设计与实现

桌面乱是个老问题。我的习惯是把正在做的项目目录、常用素材文件夹直接扔桌面,时间一长就是一片图标,找个东西得从上往下扫。也试过把文件夹固定到资源管理器的快速访问,或者用各种启动器,但这类工具添加快捷方式基本都是一个一个来:打开设置、选路径、选图标、保存,想加二十个文件夹能折腾半小时。更烦的是分类——加完一堆图标堆在一起,跟桌面凌乱只是换了个地方。

最近用 yyzTools 的程序坞,发现它把这个流程反过来了:不用逐个添加,从资源管理器拖一个文件夹到程序坞上,整个文件夹自己变成一个分类。这篇文章说说怎么用,也把它背后的拖放实现拆开讲讲。

一、先认识一下程序坞

yyzTools 装好之后程序坞默认是开着的。鼠标移到屏幕顶部边缘,一条分类栏滑下来;鼠标离开自动收起,平时不占地方。结构很简单:

  • 顶部分是分类按钮,默认 7 个:文件夹、常用工具、文件、开发工具、AI 工具、系统、快捷操作,一共 90 个内置入口(此电脑、桌面、下载、截图、录屏、翻译、OCR、各种批量处理都在里面)

  • 点开一个分类,下面弹出 3 列网格,窗口高度跟着条目数自动伸缩

  • 每个条目分三种:应用(点一下启动)、文件/文件夹(点一下用默认程序或资源管理器打开)、网址(丢给默认浏览器)

平时当启动器用已经够舒服了,但这只是"读";真正省事的是"写"——往里面拖东西。

二、拖一个文件夹,得到一个分类

这是我现在最常用的动作:资源管理器里选中项目文件夹,按住左键往屏幕顶边拖(程序坞会延时弹出来,防止拖窗口经过顶部时误触),松手。

接下来发生这些事:

  • 分类栏多了一个新分类,名字就是文件夹名

  • 文件夹里的一级内容自动收进这个分类:子文件夹排在前面,文件排在后面,最多 30 个,超出的部分截断并在提示里说明

  • 每个条目的图标直接取系统图标,跟着配置存到本地,不是每次打开临时抓

  • 松手的位置决定这个分类插在第几位;建完自动切到新分类,马上就能用

一次拖多个文件夹也行,每个文件夹各建一个分类。分类栏只认文件夹,不小心拖了文件上去会跳过并计数提示。

反过来,往内容网格里拖就是加条目:选中一个文件或者文件夹,拖到某个分类的内容区,按松手位置换算成 3 列网格里的槽位,插到当前分类的对应位置。文件点一下用默认程序打开,文件夹点一下开资源管理器。

这两条路径覆盖了我绝大部分场景:常用文件夹整体上坞(拖文件夹),散落的文件临时加进去(拖文件)。

三、拖进去之后的管理

坞里的条目不是死的,有几套操作:

  • 长按某个条目 800ms,进入抖动删除模式,点叉移除——和手机桌面一个逻辑

  • 直接拖到垃圾桶图标上也能删

  • 按住拖动可以排序;拖着悬停到别的分类按钮上,会临时切换到那个分类,松手就落在那儿,跨分类移动不用进设置

  • 右键条目有几个选项:在文件夹里搜索(直接以f path:文件夹路径唤起文件搜索并限定范围)、打开文件所在位置、管理员身份运行

拖拽建项是 v1.0.7.1700(9 月 8 日)加的,跨分类移动和一键整理桌面是 v1.1.0.2000(9 月 25 日)跟上的,到现在这几个版本用下来没出过问题。

四、拆解:拖放是怎么接进来的

WebView2 的窗口模式没有"接收拖入文件"的官方 API,程序坞的做法是自己实现 IDropTarget 注册到父窗口,从 CF_HDROP 里取绝对路径。真正麻烦的是同一个窗口要同时伺候两种拖放:

  • 页内拖动:HTML5 的 draggable,用来排序、跨分类、拖垃圾桶

  • 系统拖放:从资源管理器拖文件进来

两种拖动走同一套窗口消息,无脑注册会把页内拖动一起拦掉。程序坞的解法是动态抢注:全局左键钩子监听到按下时先判断落点——按下在窗口内,本次只可能是页内拖动,撤销注册让 Chromium 自己接管;按下在窗口外,才是外部文件拖放,这时才 RegisterDragDrop,并且顺手把 WebView 的子窗口一起枚举注册,防止消息漏到子窗口。

这里有个坑值得记:低级鼠标钩子的松键回调先于 OLE 的 Drop 派发,如果在松键时立刻撤销注册,文件拖放会在最后一刻落空。所以松键后延迟 150ms 才撤销,一个定时器的距离,Drop 正好在同一个消息循环里跑完。

建项本身也刻意放在原生侧做,不走 JS:列目录、截断、构造条目(id、categoryId、type、folderPath、name、order)、提取系统图标转 base64、按落点换算插入序号,全部在 C++ 里完成,直接写 dock 配置;配置变更经回调通知前端 reload,条目数变化再触发一次窗口高度重算。前端只负责渲染和弹提示。这样做的好处是拖放建项不依赖页面状态——页面还在加载中拖进来也能正确落盘。

图标那步也有细节:提取失败的条目不写 icon 字段,交给前端兜底显示默认图标,不会因为一个图标提取失败让整次拖放失败。

五、顺手治桌面乱:一键整理桌面

v1.1.0 还给程序坞加了一键整理桌面,在程序坞空白处右键就能看到。点一下:

  • 扫桌面第一层内容(隐藏和系统项跳过),按扩展名自动分类:软件、文档、图片、视频、音频、压缩包,剩下的并成一类

  • 每个分类最多放 21 项(3 列 × 7 行的单页容量),装不下的溢出到还有空位的整理分类,尽量单层平铺——子目录在程序坞里要多点一层,失去快捷启动的意义

  • 移动全部走同卷 rename,只移动不删除;整理完弹窗告知结果,附就地撤销入口

  • 重复整理是幂等的:桶的路径记在配置里,第二次整理往现有桶里合并,不会建出一堆"桌面整理 2"

桌面清空了,东西也没丢,都在程序坞里躺着,点一下就能开。对我这种桌面常年堆项目目录的人,这个比手动拖还省事——手动拖还得想怎么分类。

六、关于 yyzTools

可能有人第一次听说:yyzTools 是 Windows 10/11 64 位的桌面效率工具集,永久免费、不用注册。目前内置 44 项功能、388 个命令模块,界面支持 12 种语言。剪贴板、文件搜索、OCR 都在本地处理,数据不上传。安装包 176 MB 左右。

除程序坞外常用的还有:命令面板(双击 Ctrl 呼出,f搜文件、c翻剪贴板、p管进程)、超级翻译(可以接自定义 LLM,之前写过配置方法)、空格预览、鼠标手势、录屏和长截图。官网在搜索引擎里搜"yyzTools"就能找到,GitHub 上也有公开仓库,部分组件以 MIT 开源。

总结

拖文件夹建分类这个功能,说到底是把"添加"的成本降到了接近零:选中、拖过去、松手,三步。启动器类工具的体验差距,往往就在这些动作的成本上。如果你也烦透了逐个添加快捷方式,或者桌面已经乱到影响找东西,可以装一个试试程序坞;不想装全套也可以先去官网看看截图和功能列表,是不是覆盖你的日常场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 6:19:18

B站视频下载完整指南:官方缓存、浏览器插件与yt-dlp实战

刷B站的时候,总会遇到一些“想留住”的视频。可能是某一期把原理讲得特别透彻的教程,你打算通勤路上再刷两遍;也可能是UP主突然删号之前收藏下来的珍贵资料。网络一波动就转圈、收藏夹越囤越长,这时候“怎么把B站视频下载到本地”…

作者头像 李华
网站建设 2026/10/18 6:17:39

前端敏感数据加密实战:AES-JS/CryptoJS 参数选型与前后端联调避坑指南

AES-JS 这个名字,玩前端的老哥们应该不陌生——它就是那个让 JavaScript 世界里能直接做 AES 加解密的纯 JS 实现。我最早接触它,是给某电商项目做用户敏感字段脱敏:登录密码、手机号、身份证这一类信息,在前端表单里明文放着总让…

作者头像 李华
网站建设 2026/10/18 6:15:35

车辆轨迹跟踪仿真:MPC、PID与Stanley算法对比及二自由度模型详解

1. 项目整体拆解:从标题读懂这套轨迹跟踪仿真到底在做什么刚看到这个标题的时候,我的第一反应是:这大概率是车辆横向控制课程作业或某个仿真课题的经典组合——MPC、PID、Stanley,外加一个"二自由度动力学模型"作为被控…

作者头像 李华
网站建设 2026/10/18 6:14:08

NTX 贴片机维修指南

概要 NXT 贴片机是 SMT 生产线中的核心设备,其稳定运行直接决定产能与良率。本文围绕 NXT 贴片机的常见故障、维修流程与预防性维护展开,帮助工程师快速定位问题、规范维修操作,降低停机时间。 整体架构流程 NXT 贴片机维修遵循「故障现象确认…

作者头像 李华
网站建设 2026/10/18 6:13:58

基于微信小程序的生姜农作物智慧种植管理系统设计与实现

温馨提示: 本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示: 本人主页置顶文章(点我)开头有 CSDN平台官方提供的学长联系方式的名片! 温馨提示: 本人主页置顶文章(点我)开头有 CSDN 平…

作者头像 李华