检测已安装的 lazarus IDE
使用 Delphi 以编程方式检测 Lazarus IDE 是否安装在系统中的正确方法是什么?
例如,要检测是否安装了 Delphi 7,我可以检查此键 HKLM\Software\Borland\Delphi\7.0
。
我在 Windows 注册表中搜索 Lazarus 的类似密钥,但没有找到任何内容。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Lazarus 默认在
\Local Settings\Application Data\lazarus
文件夹中存储一个名为environmentoptions.xml
的文件(在某些情况下,该文件可能位于其他文件夹)。该文件包含获取 Lazarus IDE 位置以及 IDE 使用的 FPC(Free Pascal 编译器)所需的所有信息。environmentoptions.xml
文件如下所示,因此确定 Lazarus IDE 是否安装在 Windows 系统中所需的步骤是
确定
<用户名>\Local 的位置使用 >
SHGetSpecialFolderLocation
函数与CSIDL_LOCAL_APPDATA
值。解析文件
environmentoptions.xml
以找到EnvironmentOptions
根目录下的LazarusDirectory
键。现在,通过 Lazarus IDE 的位置,您可以检查该文件夹中是否存在
lazarus.exe
文件。检查此示例应用程序,它总结了此答案中的所有步骤。
Lazarus store a file called
environmentoptions.xml
by default in the<user name>\Local Settings\Application Data\lazarus
folder (in some scenarios this file can be located in other folder). This file contains all the info necessary to get the Lazarus IDE location as well the FPC (Free Pascal compiler) used by the IDE.the
environmentoptions.xml
file look like thisso the steps necessaries to determine if the Lazarus IDE is installed in a Windows system are
Determine the location of the
<user name>\Local Settings\Application Data\lazarus
using theSHGetSpecialFolderLocation
function with theCSIDL_LOCAL_APPDATA
value.Parse the file
environmentoptions.xml
to locate theLazarusDirectory
Key under theEnvironmentOptions
root.Now with the location of the Lazarus IDE you can check the existence of the
lazarus.exe
file in that folder.check this sample application which summarize all steps in this answer.
Afaik Lazarus 默认不安装到程序文件。这是因为在过去,FPC/Lazarus 使用的一些 GNU 工具无法处理文件名中的空格(尤其是资源编译器)。
请注意,配置文件中的设置目录只是默认目录。可以使用例如批处理文件来传递自己的设置目录(使用-pcp),这是几个“坚持”版本所做的事情。
此外,可能会安装多个 lazarus(多个版本、32 位和 64 位、交叉编译器等),但只有一个可以使用 appdata 目录。
恕我直言,最好的解决方案是使其用户可配置,但要检查 c:\lazarus 和/或 appdata 目录中的 XML 文件,以找到可能的位置来播种设置。
Afaik Lazarus default does not install to Program files. This because in the past, some of the GNU tools that FPC/Lazarus uses couldn't deal with spaces in filenames (most notably the resource compiler).
Note that the settings directory in the profile is only the default directory. It is possible to pass an own settings directory (with -pcp) using e.g. a batchfile, something that several "stick" versions do.
Moreover, there might be multiple lazarus installs (multiple versions, 32-bit and 64-bit, crosscompilers etc), though then only one can use the appdata dirrectory.
The best solution IMHO is to make it user configurable, but to check c:\lazarus and/or the XML files in the appdata dir to find possible locations to seed the settings with.
如果它驻留在 Program Files 和您的 C:\Users\your_name\AppData\Local\lazarus 中?
另外,你有什么版本的SO?
LE:Lazarus 似乎没有将其数据保存在注册表中 http://www .lazarus.freepascal.org/index.php?topic=9342.0
if it resides in Program Files and your C:\Users\your_name\AppData\Local\lazarus ?
also, what version of SO do you have?
LE: it seems that Lazarus does not keep its data in registry http://www.lazarus.freepascal.org/index.php?topic=9342.0