让你的 Windows 应用程序在任意路径也能够直接通过文件名执行

被刻印的时光 ゝ 提交于 2019-11-27 15:30:09

我们可以在任何路径下输入 explorer 来启动资源管理器,可以在任何路径中输入 git 来使用 git 相关的命令。我们知道可以通过将一个应用程序加入到环境变量中来获得这个效果,但是还有其他的方式吗?

我们将这个过程称之为向 Windows 注册一个应用程序路径。本文介绍向 Windows 注册一个应用程序路径的各种方法。


Windows 如何查找程序路径?

当我们在任意目录中输入一个命令的时候,Windows 会按照如下顺序寻找这个命令对应的可执行程序:

  • 当前的工作目录
  • Windows 文件夹(仅此文件夹,不会搜索子文件夹)
  • Windows\System32 文件夹
  • 环境变量 Path 值中的所有文件夹
  • 注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

微软 推荐使用 App Paths 即修改此注册表项来添加可执行程序。

当然,你也可以使用当前用户键下的注册表项来实现同样的目的,程序使用当前用户路径写注册表是不需要管理员权限的。HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths

使用 App Paths 添加可执行程序

在注册表中打开 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 子键,你可以在里面找到当前通过此方法注册的所有可执行程序。

比如下图是 PowerShell Core 的 msi 包安装后添加的 pwsh.exe 键。

PowerShell Core

现在我们添加一个我们自己开发的程序 walterlv.exe,于是就直接在 App Paths 子键下添加一个 walterlv.exe 的键,并将其默认值设为 walterlv.exe 的完整路径。

新增的 walterlv.exe


参考资料


我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!