为什么启动命令在没有某些文件路径的情况下也能工作?

为什么启动命令在没有某些文件路径的情况下也能工作?

当我尝试使用start未指定路径的命令启动程序时,对于某些程序它可以工作,但对于某些程序它却不工作。

我知道如果这些程序在我的 PATH 列表或当前目录中,我就不必输入路径。

start命令对某些程序有效,即使它们不在当前目录或我的 PATH 列表中。这是什么原因造成的?

答案1

它搜索应用程序路径注册表项。

查找应用程序可执行文件

当。。。的时候ShellExecuteEx函数被调用时,其内容是可执行文件的名称lp文件参数,函数会在多个位置查找文件。我们建议在App Paths注册表子项。这样做可以避免应用程序修改系统PATH环境变量。

该文件位于以下位置:

  • 当前工作目录。
  • Windows仅目录(不搜索子目录)。
  • Windows\System32目录。
  • 环境变量中列出的目录PATH
  • 受到推崇的:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

相关内容