介绍

虽然可以使用第三方文件管理器,但大部分程序默认打开的都是 Windows 的文件资源管理器,如何结合在一起使用?可以尝试使用第三方文件管理器打开当前资源管理器所在的目录。

环境

  • Windows 10 21H2
  • Total Commander 10.0 64bit
  • Double Commander 1.0.3 beta

思路

  • 响应特定快捷键执行命令
  • 获取当前资源管理器打开的目录
  • 将路径作为参数打开第三方文件管理器
  • 关闭当前资源管理器

方案选择

可以使用 C++ 编程实现,不过感觉有点用高射炮打蚊子了。

正好有 AutoHotKey 这种比较成熟的工具,需要的功能都有,并且很好地支持 Windows 相关接口。

编辑工具

  • Visual Studio Code 1.63.2
  • AutoHotkey Plus Plus v2.8.1

使用 AutoHotkey 扩展可以语法高亮。

注意事项

  • 只在资源管理器中响应快捷键。
  • 需要优雅的方法,尽可能减少无用冗余操作。
    • 网上的方法使用快捷键定位到地址栏,使用 Ctrl+C 剪贴板获取当前路径,使用 Ctrl+W 关闭当前窗口。
    • 使用 Ctrl+C 会污染剪贴板。
    • 这些方法有很多问题,系统卡顿时或者有其他窗口出现时,操作无法完成,并且有可能会关闭错误窗口。
  • 需要支持含有空格的路径。
  • 需要支持含有中文的路径。
  • 需要支持关闭当前资源管理器。
    • 发送 WM_CLOSE 消息,而不是 Ctrl+W 快捷键。

最终结果

使用 Alt+E 可以在 DC/TC 中打开当前资源管理器中的目录,并且随即关闭资源管理器。并且此快捷键只在资源管理器中生效,其他应用中依然可以使用 Alt+E 触发原有功能。

最终脚本做了两份,分别用于打开 Double Commander 与 Total Commander。如果想要修改快捷键与程序的启动参数,可以直接修改代码。