Skip to content

一个基于 Python 的实用工具,旨在解决 Windows 旧版“浏览文件夹” (Browse For Folder) 对话框**无法直接输入路径**的痛点。

License

Notifications You must be signed in to change notification settings

abevol/windows-browse-dialog-navigator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Windows Browse Dialog Navigator (浏览文件夹对话框快速导航)

这是一个基于 Python 的实用工具,旨在解决 Windows 旧版“浏览文件夹” (Browse For Folder) 对话框无法直接输入路径的痛点。

通过运行此脚本,你可以将目标路径复制到剪贴板,然后在对话框中按下 Ctrl+L,脚本会自动解析路径并控制 TreeView 逐级展开并定位到目标文件夹。

🎯 功能特性

  • 快捷键触发:按下 Ctrl+L 一键导航。
  • 自动路径解析:智能识别剪贴板中的路径(支持盘符 C:\ 和 UNC 路径 \\Server\Share)。
  • 精准匹配:采用了检测 SHBrowseForFolder ShellNameSpace Control 类名的方式定位目标窗口,避免了无关 TreeView 控件的干扰。
  • 本地化支持:能够处理 Windows 的特殊文件夹名称(如将路径中的 Users 识别为显示的 用户Desktop 识别为 桌面),确保 TreeView 匹配准确。
  • 自动化操作:使用 pywinauto 自动展开节点并滚动至可见。
  • 完全后台工作:脚本在后台运行,目标窗口不激活亦可实现导航操作。

🛠️ 环境要求

  • Windows 操作系统 (建议 Windows 10/11)
  • Python 3.x

📦 安装依赖

建议创建一个虚拟环境,然后安装 requirements.txt 中的依赖:

pip install -r requirements.txt

🚀 如何使用

1. 启动导航脚本

管理员身份运行主程序(推荐,确保 keyboard 模块能正常拦截全局热键):

python browse_dialog_navigator.py

此时终端会显示:运行中:Ctrl+L 导航 '浏览文件夹' 对话框路径

2. 触发对话框(测试用)

如果你手头没有正在打开的“浏览文件夹”对话框,可以使用项目中提供的测试脚本来模拟一个:

python test_browse_dialog.py

这将打开一个标准的 Windows 文件夹选择窗口。

3. 执行导航

  1. 将你想要跳转的路径复制到剪贴板,例如:C:\Windows\System32
  2. 确保“浏览文件夹”对话框已经打开,但不必激活。
  3. 按下键盘上的 Ctrl + L
  4. 观察脚本自动展开树状列表并选中目标文件夹。

📂 文件说明

  • browse_dialog_navigator.py: 核心脚本。包含路径解析、Shell 本地化名称获取以及 GUI 自动化逻辑。
  • test_browse_dialog.py: 测试脚本。调用 Shell.Application 弹出一个遗留样式的文件夹选择框,用于验证导航功能。

⚠️ 注意事项

  1. 管理员权限keyboard 模块监听全局热键通常需要管理员权限,如果按下快捷键无反应,请尝试以管理员身份运行终端。

  2. 路径名称匹配: 脚本尝试通过 Windows Shell API 获取文件夹的“显示名称”(Display Name)以匹配 TreeView 中的节点文字(例如实际路径是 C:\Users 但显示为 用户)。这解决了大部分导航失败的问题,但在极少数自定义严重的系统环境中可能仍有偏差。

📄 License

MIT License

About

一个基于 Python 的实用工具,旨在解决 Windows 旧版“浏览文件夹” (Browse For Folder) 对话框**无法直接输入路径**的痛点。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages