【发布时间】:2011-03-28 15:37:49
【问题描述】:
我必须创建一个可执行文件(使用 Borland C++ Builder 6)来代替 Windows 7 的批处理文件,因为权限不允许普通用户(非管理员)运行必要的批处理。我们有许多不同的 Windows 7 机器,一些 64 位和一些 32 等。我遇到的问题是“程序文件”目录被硬编码到程序中,但它并不总是正确的程序文件目录,这会导致某些机器上的一些错误。
我很熟悉从注册表获取程序文件目录的方法,但恐怕这不适用于所有机器,因为权限设置不允许程序访问注册表。我一直在寻找像 GetWindowsDirectory 这样的功能,但无济于事。有没有人有什么建议?
编辑: 我已经在 Windows XP 机器上对此进行了编程,以便简单地放置在 Win7 上(无法更改或避免 XP/7 的事情,可能很糟糕)。这是一个无需安装的简单实用程序;它只是放在一个文件中。它只需要出去找到程序文件目录来执行一些任务。
【问题讨论】:
-
这已经是asked。
-
不要在注册表中浏览此类内容。如果它没有记录在案,那么它可能会在未来中断。注册表中的许多路径用于向后兼容未找到正确 API 的应用程序(SHGetSpecialFolderPath、SHGetFolderPath、SHGetKnownFolderPath 等)。
标签: c++ c++builder c++builder-6 borland-c++