首页 > 代码库 > inno setup通过用户配置修改ini文件

inno setup通过用户配置修改ini文件

 

很多写软件的人都知道,当打包好安装时,想让用户自己来配置一些ini文件的东西。那么具体步骤如下:

1、必须有让用户有配置的界面。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[code]
var
  mypage:TwizardPage;
  lbDatabase:TLabel;
  edDatabase:TEdit;
//这个是全局变量,要保存的网址<br>  <a href="http://i.cnblogs.com/String;//">url:String;
//</a>必须在这个事件中创建控件,这个事件无法获取控件的值,必须要在点击下一步按钮中获取<br>procedure InitializeWizard ();
begin
  mypage:=CreateCustomPage(wpWelcome,‘客户端‘,‘配置默认的网址‘);
 
  lbDatabase := TLabel.Create(mypage);
  lbDatabase.Parent:=mypage.Surface;
  lbDatabase.Caption := ‘服务器‘;
  lbDatabase.Autosize := true;
 
  edDatabase:=TEdit.Create(mypage);
  edDatabase.Parent:=mypage.Surface;
  edDatabase.Width:=200;
  edDatabase.Left := 80;
  edDatabase.Top := lbDatabase.Top;
//初始化这个控件值。<br>  edDatabase.Text:=‘http://www.baidu.com/‘;
   
end;

 2、获取编写用户输入控件的值,先由全局变量url保存。

function NextButtonClick ( CurPageID : Integer): Boolean;
begin
    url:= edDatabase.Text;
    Result := true;
end;

3.由于ini段,取安装过程的url值,只支持函数。

[INI]
;Filename: "{app}\httpUrl.ini"; Section: "config"; Flags: uninsdeletesection
Filename: "{app}\httpUrl.ini"; Section: "config"; Key: "url"; String: "{code:MyConst|{app}}"

所以还需要在code段加一个MyConst函数,返回值就是url

?
1
2
3
4
function MyConst(Param: String): String;
begin
  Result := url;
end;

 合并起来的代码就是

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[code]
var
  mypage:TwizardPage;
  lbDatabase:TLabel;
  edDatabase:TEdit;
  url:String;
procedure InitializeWizard ();
begin
  mypage:=CreateCustomPage(wpWelcome,‘零尔客户端‘,‘配置默认的网址‘);
 
  lbDatabase := TLabel.Create(mypage);
  lbDatabase.Parent:=mypage.Surface;
  lbDatabase.Caption := ‘服务器‘;
  lbDatabase.Autosize := true;
 
  edDatabase:=TEdit.Create(mypage);
  edDatabase.Parent:=mypage.Surface;
  edDatabase.Width:=200;
  edDatabase.Left := 80;
  edDatabase.Top := lbDatabase.Top;
  edDatabase.Text:=‘http://218.108.48.74:8080/‘;
   
end;
 
function NextButtonClick ( CurPageID : Integer): Boolean;
begin
    url:= edDatabase.Text;
    Result := true;
end;
 
function MyConst(Param: String): String;
begin
  Result := url;
end;

 最后要注意的是打包的时候必须要把ini文件做好放进去,这样安装程序就可以通过用户配置来修改ini文件了。

文件内容:


[config]
url=http://www.baidu.com/