HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 实际上起什么作用?

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 实际上起什么作用?

假设(Windows 10,64位)我有一个独立的 exe 文件,示例程序—— 没有使用安装程序安装,注册表中没有任何内容,只有一个 exe 文件。

如果我进入注册表,并在应用程序路径中添加一个键“example.exe”,并将其默认值设置为路径(.reg 文件片段):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\example.exe]
@="C:\\example\\example.exe"

我的系统现在有什么不同?我现在能做什么,而添加它之前我不能做什么?

答案1

看起来这是一个 RTFM 的案例;我得到了一个链接文档此评论(谢谢),所以我想我应该发布一个简短的概述。请查看 MS 文档了解完整详细信息。


“应用路径”的主要用途是这个答案ShellExecute暗示,是每个应用程序 PATH 条目的替代位置(相对于全局用户或系统 PATH 条目)。它还指定了 Windows(特别是)如何处理该程序的一些细节。

对于我的具体示例,它唯一做的事情就是指定“example.exe”的完整路径。这里可能有几个影响,但一个值得注意的影响是:

  • 我现在可以在其中输入“example.exe”,或者只是“example”。开始 → 运行它将运行该应用程序;我不再需要指定完整路径(例如,我不必输入“c:\example\example.exe”)。

但是,子项下还会出现一些其他值,这些值会影响各种事情:

  • 小路指定在应用程序运行时添加到 PATH 环境变量的路径列表——我猜这是 App Paths 的主要目的(因此得名)。
  • 放置目标可用于指定将文件拖到 exe 上时的自定义行为,而不是默认将文件名转换为命令行参数。
  • 支持的协议指定应用程序是否处理特定的 URL 方案。
  • 使用Url指定应用程序是否可以处理 URL 而不仅仅是本地文件,最终效果是允许各种优化,例如 Windows 将互联网资源的 URL 传递给应用程序而不是先在本地下载等。
  • 不要使用桌面更换路由器是一些与避免调试器应用程序的文件选择对话框死锁有关的设置。这是一个非常具体的选项。

就是这样:路径、自定义拖放行为、URL 处理,以及一个看似任意的超特定调试器相关设置,我猜他们找不到更好的地方来放置它(或者它是一个旧的高优先级热修复程序,而一些可怜的 MS 开发人员在咖啡因和烟雾中运行)。这是一个奇怪的小集合;但我确信那里的一切都是有历史原因的。

相关内容