问题描述
我正在为我们的内部图书馆制作一些整洁的安装程序(而不是只打开DPK,点击安装,稍后会发生混乱),这使得我必须了解如何获得各种各样的内容Delphi变量,如 ,注册表RootDir值等。我看到在Delphi中有一些变量可以使用(例如在搜索路径中),如$(BDS )等等。当我查看我的机器环境变量时,我不会看到这些,无论是在系统或当前用户。
我的问题是:
- Delphi做一些内部扩展$( BDS)等?或者我可以以某种方式在外部使用(例如在注册表中查找)。
- 为什么搜索路径中的符号$(xxxx),而不是%xxxx%变量?
谢谢
1)他们只是Delphi为其设置的环境变量您可以使用从安装在IDE中的设计包;这里是。
如果您的安装程序是单独的可执行文件,您仍然可以(或多或少可靠)猜测在哪里可以获取一些值: / p>
-
BDS
:RootDir
注册表中的值,例如HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\8.0\
-
BDSCOMMONDIR
:在旧版本(Delphi 2007,我猜),这是一个全局环境变量,由Delphi安装程序设置。在以后的版本中,您可以在rsvars.bat
中找到。
其他可能会导出,例如:
-
BDSLIB
:$(BDS)\lib
-
BDSINCLUDE
:$(BDS) \include
用户定义的变量(在Delphi的环境选项对话框中定义)存储在环境变量
注册表子项。
2) $(...)
符号是IMHO更好,因为它有明确的打开和关闭分隔符,它更容易与搜索/替换操作,也更可读。
I'm making some tidy installers for our internal libraries (instead of just opening the DPK's and clicking 'install' and getting in a mess later...) and this has caused me to have to understand how to get at various Delphi variables such as Known Packages, the registry RootDir value etc.
I see that within Delphi there are a number of variables that you can use (within a search path for example) such as $(BDS) etc. When I look into my machine environment variables I dont see these, either in system or current user.
My questions are:
- Is Delphi doing something internal to expand $(BDS) etc itself? Or can I use these externally in some way (eg looked up in the registry).
- Why is the notation $(xxxx) within a search path and not %xxxx% as with an envirnment variable?Thanks
1) They are simply environment variables which Delphi sets for its own process and you can retrieve them with GetEnvironmentStrings from a design package installed in the IDE; here's an example.
If your installer is a separate executable, you can still (more or less reliably) guess where to get some of the values:
BDS
:RootDir
value in the registry, e.g.HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\8.0\
BDSCOMMONDIR
: in older versions (Delphi 2007, I guess) this was a global environment variable, set by the Delphi installer. In later versions you can find it inrsvars.bat
.
Some others might probably be derived, e.g.:
BDSLIB
:$(BDS)\lib
BDSINCLUDE
:$(BDS)\include
User-defined variables (defined in Delphi's Environment Options dialog) are stored in the Environment Variables
registry subkey.
2) The $(...)
notation is IMHO simply better because it has distinct opening and closing delimiters, it's easier to work with for search/replace operations and also more readable.
这篇关于Delphi的“环境变量”如$(BDS)如何评估?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!