按照 Microsoft 的指南, http://msdn.microsoft.com/en-us/library/ee872121(VS.85).aspx ,我能够让我的程序能够让程序解析运行所需的动态库。
因此,我添加了一个包含我的可执行文件的全名和路径的值,并向该条目(命名路径)添加了包含 DLL 文件目录的完整路径的子项。
还有魔法。有用。我进入开始菜单,然后键入 myprogram.exe,它会启动,现在能够正确定位 dll 文件。
但是,如果我使用命令 cmd.exe 启动命令提示符,然后尝试运行 myprogram.exe,则无法再解析 DLL。出于某种原因,在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 下设置时,命令提示符似乎不尊重/读取注册表的值
关于如何在命令提示符和开始菜单中使此行为正常工作,有什么建议吗?
最佳答案
这是正确的。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
由 ShellExecuteEx
使用,而不是由 CreateProcess
使用。因此,并非所有程序都会使用您应用程序的 App Paths
中的设置。如果要为 cmd.exe 定义 PATH
,您可以使用名称为 cmd.exe 的 App Paths
的子项或使用旧的 %SystemRoot%\System32\autoexec.nt
文件修改PATH
环境变量。
关于windows - 添加特定于应用程序的路径,因此它可以从 Windows 中的命令行运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114618/