添加特定于应用程序的路径,因此它可以在Windows中的命令行中运行

时间:2010-06-24 23:23:18

标签: windows dll dynamic

按照微软的指南, 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

下设置时似乎不尊重/读取注册表的值

有关如何在命令提示符和开始菜单中使用此行为的任何建议吗?

3 个答案:

答案 0 :(得分:5)

这是对的。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths使用ShellExecuteExCreateProcess使用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中运行所有内容。

如果你在那里,那么它会起作用。

如果你不想把它放在那里,你可以通过点击“我的电脑”上的鼠标右键来改变“环境变量” - > “属性” - > “高级” - > “环境变量”。

祝你好运。