# quick-dir **Repository Path**: xxhh/quick-dir ## Basic Information - **Project Name**: quick-dir - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-08 - **Last Updated**: 2026-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QuickDir — 常用目录 / 软件 / 脚本快捷启动器 Windows 11 桌面小工具:一个快捷键,弹出你的常用目录、软件、脚本的卡片墙,点击即开。 UI 由 **WebView2(Edge 内核)** 渲染,现代扁平设计:卡片阴影悬停动效、分段式 Tab、原生圆角窗口、exe 真实图标。 ## 使用方法 1. 启动 `QuickDir.exe`(或双击 `run.bat`),托盘区出现蓝色文件夹图标 2. 按 **` **(默认,可在设置中改)弹出/隐藏卡片窗口 3. 顶部 **Tab 切换**:📁 目录 / 🚀 软件 / 📜 脚本 4. 点击卡片 → 打开目录 / 启动软件 / 运行脚本 ## 功能 | 功能 | 说明 | |---|---| | 三个 Tab | 📁 目录 / 🚀 软件 / 📜 脚本,点击切换,各自的添加按钮、搜索、空状态提示 | | 自动记录目录 | 复制过目录路径(剪贴板)、打开过的资源管理器窗口,自动累计次数 | | 自动记录软件 | **按前台窗口归属进程累计「使用时长」**(每 2 秒采样,精确到秒),用得越多的排越前;**任务栏固定的应用启动时自动收录**并置顶 | | 软件识别 | 优先显示 exe 版本资源里的产品名(如 "Google Chrome"),**卡片显示 exe 真实图标** + 累计使用时长徽章(如 `3.2小时`) | | 盘符分组 | 目录 Tab 按 C:\ / F:\ 等盘符分区展示,**目录多的盘符自动分到更多列**、排在前面 | | 单击打开 | 目录 → 资源管理器打开;软件/脚本 → 直接运行 | | 右键菜单 | 打开(运行) / 复制路径 / 固定·取消固定 / 删除记录 | | ➕ 添加 | 手动添加目录 / 软件(.exe)/ 脚本(.bat/.py/.ps1 等),自动固定置顶 | | 🖱 拖拽排序 | **卡片可拖动换位,动态让位**(v4.8:拖着的卡片跟随光标,其他卡片实时平滑移开,松手即最终顺序);Tab 标签也可拖动换序;手动排序过的类型按手动顺序展示(📌 固定仍在最上方) | | 📥 拖入添加 | **从资源管理器把文件/文件夹拖进面板**(v4.8 重写:走 pywebview 官方拖放链路,WebView2 `FilesDropped` 消息直接给真实路径):文件夹→目录,exe/快捷方式→软件(自动解析 .lnk 目标),脚本→脚本;已有条目自动忽略并提示数量 | | 🔍 搜索 | 输入关键词即时过滤(跟随当前 Tab) | | 📜 滚动 | 内容较多时卡片区支持鼠标滚轮滚动;按住窗口顶部空白处可拖动窗口 | | ⚙ 设置 | 快捷键(单键/组合键)+ 窗口大小百分比(50%~100%,宽高同步缩放),实时预览 | | 关闭方式 | Esc、点击窗口外任意位置、再次按快捷键 | | 托盘菜单 | 右键托盘图标:显示 QuickDir / 退出 | ## 快捷键 默认两个快捷键:**轻点 Ctrl**(内置,按住后无其他按键即松开 = 轻点,不吞键、不影响 Ctrl+C/V)或 `` ` ``(Esc 下方 / Tab 上方那个键),按一下弹出,再按一下收起。 单键通过低级键盘钩子实现,**按键会被全局拦截**(任何地方按 `` ` `` 都弹出窗口,不会输入字符); 组合键(如 `Ctrl+Alt+D`)则通过系统热键注册,不拦截按键。 修改方式(推荐):窗口右上角「⌨ 快捷键」→ 点输入框 → 直接按下想要的键 → 保存,**即时生效,无需重启**。 - 支持单键(如 `` ` ``、`F1`)或组合键(如 `Ctrl+Alt+D`),按住 Ctrl/Alt/Shift 再按键即为组合键 - 若注册失败(被占用/不支持),会自动退化为 `Ctrl+Alt+Q` 也可直接编辑 `%APPDATA%\QuickDir\data.json` 的 `"hotkey"` 字段,保存后自动生效: - 单键:`` "grave" ``、`"f1"` - 组合:`"ctrl+alt+d"`、`"ctrl+shift+e"` - 特殊键名:`grave`(`` ` ``) `minus` `equal` `backslash` `bracketleft` `bracketright` `semicolon` `quote` `comma` `period` `slash` `space` > 注意:单键热键在**任何地方**按下都会弹出窗口(包括在输入框里打字时)。若觉得误触,建议改成组合键。 ## 数据位置 - 记录与配置:`%APPDATA%\QuickDir\data.json`(纯本地,无联网) - 条目格式:`"类型:路径"`(`dir:` / `app:` / `script:`),旧版数据自动迁移 - 软件的使用时长每 10 秒落盘一次 - **容量上限按类型独立**(v4.7):目录 150 / 软件 200 / 脚本 100,三类互不挤占 - **淘汰不销毁**:超出上限时,先清「路径已不存在」的幽灵条目,再按 `次数 + 时长/600` 从低到高淘汰; 被淘汰的条目移入 `archive.json`(带时间、原因、分数),**下次再被使用会自动复活并保留原计数** - **每日自动快照**:`backups\data-YYYYMMDD.json`,保留最近 7 份;误删误改最多丢一天 - **幽灵卡片**:指向的目录/程序已不存在时,卡片变灰虚线显示(不会被静默删除,右键可删) - **目录失效自动清除**(v4.7.3):目录条目的路径没了就自动收起(进 `archive.json`,不是销毁), 不再占着面板显示灰卡。安全闸门:只清 `dir` 类;所在盘符不可用(可移动盘未插 / 网络盘掉线)一律跳过; 连续两次巡检都判失效才动手;置顶条目不动;启动后 20 秒首扫、之后每 5 分钟一次 - 删除过的条目仍写墓碑(`settings.removed`),自动收录不会把它加回来 - **再次启动只弹面板**:已经在运行时再双击 exe,不会弹「已在运行」框(旧行为会留下看不见的僵尸进程 卡住热键),而是通知已运行的那份把面板弹出来 ## 开发运行 ``` .venv\Scripts\python quickdir.pyw ``` 依赖:pywin32 / pystray / pillow / pywebview(WebView2 渲染,Win11 自带运行时)/ pythonnet ## 打包 ``` .venv\Scripts\pyinstaller --noconfirm --onefile --windowed --name QuickDir --hidden-import pystray._win32 --collect-all webview --collect-all pythonnet --collect-all clr_loader quickdir.pyw ```