按照微软的指南, 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
下设置时似乎不尊重/读取注册表的值有关如何在命令提示符和开始菜单中使用此行为的任何建议吗?
答案 0 :(得分:5)
这是对的。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
使用ShellExecuteEx
,CreateProcess
使用App Paths
。因此,并非所有程序都将使用应用程序PATH
中的设置。如果要为cmd.exe定义App Paths
,可以使用名为cmd.exe的%SystemRoot%\System32\autoexec.nt
子项,或使用旧PATH
文件修改{{1}}环境变量
答案 1 :(得分:1)
也可以从使用ShellExecuteEx的命令行中使用“START / WAIT app.exe”。
答案 2 :(得分:-2)
我会尽我所能。
首先,请注意cmd& run \ start菜单选项正在C:\ WINDOWS \ system32中运行所有内容。
如果你在那里,那么它会起作用。
如果你不想把它放在那里,你可以通过点击“我的电脑”上的鼠标右键来改变“环境变量” - > “属性” - > “高级” - > “环境变量”。
祝你好运。