Inno setup Inno安装程序从.ini读取值

Inno setup Inno安装程序从.ini读取值,inno-setup,ini,Inno Setup,Ini,我想从.ini文件中读取值。然后写一个条件——如果这个值等于“1”,那么做某事(执行一个动作)。 我尝试了getinistring,但没有得到任何值(只显示默认值)。 我不知道如何在下面附带的代码中实现readini。 谢谢你的帮助, 是初学者:) //编辑 下面是一个代码: #include ReadReg(HKEY_LOCAL_MACHINE,'Software\Sherlock Software\InnoTools\Downloader','ScriptPath',''); #includ

我想从.ini文件中读取值。然后写一个条件——如果这个值等于“1”,那么做某事(执行一个动作)。 我尝试了getinistring,但没有得到任何值(只显示默认值)。 我不知道如何在下面附带的代码中实现readini。 谢谢你的帮助, 是初学者:)

//编辑 下面是一个代码:

#include ReadReg(HKEY_LOCAL_MACHINE,'Software\Sherlock Software\InnoTools\Downloader','ScriptPath','');
#include ReadReg(HKEY_LOCAL_MACHINE,'Software\Sherlock Software\InnoTools\Tray','ScriptPath','');

[Languages]
Name: english; MessagesFile: compiler:Default.isl

[Code]
function isxdl_Download(hWnd: Integer; URL, Filename: AnsiString): Integer;
external 'isxdl_Download@files:isxdl.dll stdcall';
function isxdl_SetOption(Option, Value: AnsiString): Integer;
external 'isxdl_SetOption@files:isxdl.dll stdcall';
var
a :string;
b :string;

//Downloading a component depending on component choice in another setup(read from .ini)
procedure CurStepChanged(CurStep: TSetupStep);
begin
a:=GetIniString('Select', 'First', 'false', '{pf}/SP_Settings.ini');
b:=GetIniString('Select', 'Should', 'true', {pf}\SP_Settings.ini');

begin
if CompareStr(a,b)=0 then
  if CurStep=ssInstall then begin
      isxdl_SetOption('title', 'File Download');
      isxdl_SetOption('label', 'Download');
      isxdl_SetOption('description', 'Setup is downloading a file.');
      isxdl_Download(0,'url', ExpandConstant('{app}\x.rar'));   
      end;      
end;
end;

[Files]
Source: C:\Documents and Settings\user\Pulpit\XML\Project\isxdl.dll; DestDir: {tmp}; Flags: dontcopy

有一些Pascal脚本函数,如
GetIniInt
GetIniString
,您可以用来读取ini文件。看

我想指出,在OP改变他的问题之前,我写了这个回复,告诉我们他已经尝试了
GetIniString
ReadIni
函数。所以是的:我在写这个答案之前读过这个问题:-)

从您发布的代码中,我可以看到您正在尝试从Program Files文件夹中读取ini文件。但是,这仅在使用
ExpandConstant
函数时有效,因此它应该为

a:=GetIniString('Select', 'First', 'false', ExpandConstant('{pf}') + '\SP_Settings.ini');
b:=GetIniString('Select', 'Should', 'true', ExpandConstant('{pf}') + '\SP_Settings.ini');

你什么意思:什么都不管用?你没有得到任何价值吗?你的情况不好吗?请发布一些代码,以便我们可以看到您正在做什么。我将代码粘贴到第一篇文章中。GetIniString不获取任何值。条件正常。只是为了完整:这不是一个论坛,所以没有什么比得上“帖子”。你问一个问题,其他人提供答案。当我们询问更多细节时,我们希望您编辑您的问题,而不是“添加新帖子”。答案是按投票数排序的,因此最终,您发布的另一个“答案”将位于列表的底部。我已编辑了我的答案。请检查这是否有效。