将sqlserver安装配置文件打包到setup.exe中
OutPut中所需要的文件及文件夹
inno setup脚本文件需要用到的文件
所有到到脚本文件
autoInstallapache.bat
@echo off
cd ..
set apacheroot=%~dp0%apache
echo %apacheroot%
cd %apacheroot%
bin\httpd -k install
bin\httpd -k start
autoInstalljdk.bat
@echo off
cd ..
set jdkpath=%~dp0%javasdk
echo %jdkpath%
wmic ENVIRONMENT where "name='JAVA_HOME'" delete
wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%jdkpath%"
wmic ENVIRONMENT where "name='PATH' and username='<system>'" set VariableValue="%PATH%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;"
autoUnInstallapache.bat
@echo off
cd ..
set apacheroot=%~dp0%apache
echo %apacheroot%
cd %apacheroot%
bin\httpd -k stop
bin\httpd -k uninstall
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "平台"
#define MyAppVersion "1.0"
#define MyAppPublisher "责任公司"
#define MyAppURL "http://www.aaa.com"
[Languages]
Name: "chs"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{60A75221-BCC5-447F-B69D-F12EFD3DCAA3}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\myprograme
DefaultGroupName={#MyAppName}
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
WizardStyle=modern
ArchitecturesAllowed=x64
ArchitecturesInstallIn64BitMode=x64
LicenseFile=LICENSE.txt
AlwaysRestart=yes
[Files]
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Source: "{src}\apache\*"; DestDir: "{app}\apache";Flags: external igNoreversion recursesubdirs createallsubdirs
Source: "{src}\php\*"; DestDir: "{app}\php";Flags: external igNoreversion recursesubdirs createallsubdirs
Source: "{src}\javasdk\*"; DestDir: "{app}\javasdk";Flags: external igNoreversion recursesubdirs createallsubdirs
Source: "{src}\msodbcsql.msi"; DestDir: "{app}";Flags: external igNoreversion recursesubdirs createallsubdirs
Source: "{src}\vc_redist.x64.exe"; DestDir: "{app}";Flags: external igNoreversion recursesubdirs createallsubdirs
Source: "{src}\autoInstallapache.bat"; DestDir: "{app}";Flags: external igNoreversion recursesubdirs createallsubdirs
Source: "{src}\autoInstalljdk.bat"; DestDir: "{app}";Flags: external igNoreversion recursesubdirs createallsubdirs
Source: "{src}\autoUnInstallapache.bat"; DestDir: "{app}";Flags: external igNoreversion recursesubdirs createallsubdirs
Source: "{src}\www\*"; DestDir: "{app}\www";Flags: external igNoreversion recursesubdirs createallsubdirs
Source: "ConfigurationFile_simple.ini";Flags: dontcopy noencryption
Source: "{src}\sqlserverdata\*"; DestDir: "{app}";Flags: external igNoreversion recursesubdirs createallsubdirs
[Run]
Filename: "{src}\sqlserver_2012_xpr_x64_sp1\SETUP.EXE"; Parameters: "/ConfigurationFile={tmp}\ConfigurationFile_simple.ini"; Description: "sqlserver";Flags: waituntilterminated
Filename: "{app}\msodbcsql.msi"; Parameters: "/qb IACCEPTMSODBCSQLLICENSETERMS=YES"; Description: "msodbcsql"; Flags:shellexec waituntilterminated
;设置java环境变量
Filename: "{app}\autoInstalljdk.bat";Flags: runascurrentuser waituntilterminated
[Code]
var
CheckNetEvnPageID:Integer;//CheckNetEvnPage的PageID
//CheckNetEvnPageBtnInstall:Tbutton;//安装net46按钮
CheckNetEvnPageDotNetLbl:TLabel; //显示DotNet是否安装标签
CheckNetEvnPageVC14x64NetLbl:TLabel; //显示DotNet是否安装标签
InstalledShowInfoPageID:Integer;
//*****************************************************************************************************
//net环境检察函数
function IsDotNetDetected(version: string; service: cardinal): boolean;
// Indicates whether the specified version and service pack of the .NET Framework is installed.
//
// version -- Specify one of these strings for the required .NET Framework version:
// 'v1.1' .NET Framework 1.1
// 'v2.0' .NET Framework 2.0
// 'v3.0' .NET Framework 3.0
// 'v3.5' .NET Framework 3.5
// 'v4\Client' .NET Framework 4.0 Client Profile
// 'v4\Full' .NET Framework 4.0 Full Installation
// 'v4.5' .NET Framework 4.5
// 'v4.5.1' .NET Framework 4.5.1
// 'v4.5.2' .NET Framework 4.5.2
// 'v4.6' .NET Framework 4.6
// 'v4.6.1' .NET Framework 4.6.1
// 'v4.6.2' .NET Framework 4.6.2
//
// service -- Specify any non-negative integer for the required service pack level:
// 0 No service packs required
// 1, 2, etc. Service pack 1, 2, etc. required
var
key, versionKey: string;
install, release, serviceCount, versionRelease: cardinal;
success: boolean;
begin
versionKey := version;
versionRelease := 0;
// .NET 1.1 and 2.0 embed release number in version key
if version = 'v1.1' then begin
versionKey := 'v1.1.4322';
end else if version = 'v2.0' then begin
versionKey := 'v2.0.50727';
end
// .NET 4.5 and newer install as update to .NET 4.0 Full
else if Pos('v4.', version) = 1 then begin
versionKey := 'v4\Full';
case version of
'v4.5': versionRelease := 378389;
'v4.5.1': versionRelease := 378675; // 378758 on Windows 8 and older
'v4.5.2': versionRelease := 379893;
'v4.6': versionRelease := 393295; // 393297 on Windows 8.1 and older
'v4.6.1': versionRelease := 394254; // 394271 on Windows 8.1 and older
'v4.6.2': versionRelease := 394802; // 394806 on Windows 8.1 and older
end;
end;
// installation key group for all .NET versions
key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + versionKey;
// .NET 3.0 uses value InstallSuccess in subkey Setup
if Pos('v3.0', version) = 1 then begin
success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
end else begin
success := RegQueryDWordValue(HKLM, key, 'Install', install);
end;
// .NET 4.0 and newer use value Servicing instead of SP
if Pos('v4', version) = 1 then begin
success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
end else begin
success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
end;
// .NET 4.5 and newer use additional value Release
if versionRelease > 0 then begin
success := success and RegQueryDWordValue(HKLM, key, 'Release', release);
success := success and (release >= versionRelease);
end;
result := success and (install = 1) and (serviceCount >= service);
end;
//*****************************************************************************************************
//*****检测vc环境方法**************
function IsVc14x64Detected():boolean;
var
str,CurVer:string;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64', 'Version', CurVer);
str := Copy(CurVer,2,2);
log(str);
if str = '14' then
begin
Result := true;
end
else begin
Result := false;
end;
end;
//*****检测vc环境方法**************
//****************安装VC14X64方法***********************************************
procedure InstallVc14X64;
var srcpath:string;
ResultCode:Integer;
begin
//同安装setup同目录下的文件{src}
srcpath := ExpandConstant('{src}\vc_redist.x64.exe');
Exec(srcpath, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
end;
//****************安装VC14X64方法***********************************************
procedure CheckNetEvnPageBtnVcInstallOnClick(Sender:TObject);
var
vc46installpackpath:string;
begin
vc46installpackpath:=ExpandConstant('{src}\vc_redist.x64.exe');
if NOT IsVc14x64Detected then begin
if FileExists(vc46installpackpath) then begin
//MsgBox('文件存在', mbInformation, MB_OK);
InstallVc14X64;//调用安装InstallVc14X64方法。
end else MsgBox(vc46installpackpath +'文件不存在。', mbInformation, MB_OK);
end else
MsgBox('系统已安装VC14X64环境,不需要安装', mbInformation, MB_OK);
end;
//**安装DotNet46方法************************
procedure InstallDotNet46;
var
srcpath:string;
ResultCode:Integer;
begin
//同安装setup同目录下的文件{src}
srcpath := ExpandConstant('{src}\NDP46-KB3045557-x86-x64-AllOS-ENU.exe');
Exec(srcpath, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
log(srcpath);
end;
//**安装DotNet46方法************************
//**************
procedure CheckNetEvnPageBtnInstallOnclick(Sender:TObject);
begin
if NOT IsDotNetDetected('v4.6',0) then begin
MsgBox('没有安装net46环境', mbInformation, MB_OK);
end else
MsgBox('系统已安装net46环境', mbInformation, MB_OK);
end;
//***************************************************************************************
procedure InstallDotNet46ButtonOnClick(Sender:TObject);
var
net46installpackpath:string;
begin
net46installpackpath := ExpandConstant('{src}\NDP46-KB3045557-x86-x64-AllOS-ENU.exe');
if NOT IsDotNetDetected('v4.6',0) then begin
if FileExists(net46installpackpath) then begin
//MsgBox('文件存在', mbInformation, MB_OK);
InstallDotNet46;//调用安装DotNet46方法。
end else MsgBox(net46installpackpath +'文件不存在。', mbInformation, MB_OK);
end else
MsgBox('系统已安装net46环境,不需要安装', mbInformation, MB_OK);
end;
procedure CheckNetEvnPageBtnVcCheckOnClick(Sender:TObject);
begin
if NOT IsVc14x64Detected then begin
MsgBox('vc14x64没有安装', mbInformation, MB_OK);
end else
MsgBox('vc14x64已安装', mbInformation, MB_OK);
end;
//*******************AboutButtonOnClick****************************************
procedure AboutButtonOnClick(Sender: TObject);
begin
MsgBox('华远智能信息发布系统V1.0。', mbInformation, mb_Ok);
end;
//*******************AboutButtonOnClick****************************************
//*********创建自定义向导页面**************************************************
procedure CreateTheWizardPages;
var
CheckNetEvnPage:TwizardPage;//net环境检测页面
CheckNetEvnPageBtn:Tbutton;//检查按钮
CheckNetEvnPageBtnInstall:Tbutton;//安装net46按钮
CheckNetEvnPageBtnVcInstall:Tbutton;//安装vc环境按钮
InstalledShowInfoPage:TwizardPage;
InstalledShowInfoPageLbl1:Tlabel;//请使用谷歌浏览器登录
InstalledShowInfoPageLbl2:Tlabel;//http://localhost:18080
InstalledShowInfoPageLbl3:Tlabel;//用户名:admin,密码:admin
InstalledShowInfoPageLbl4:Tlabel;
InstalledShowInfoPageLbl5:Tlabel;
InstalledShowInfoPageLbl6:Tlabel;
CheckNetEvnPageBtnVcCheck:Tbutton;
begin
{net环境检查}
CheckNetEvnPage:=CreateCustomPage(wpLicense, '环境检查', '安装环境是必须的。');
CheckNetEvnPageID:=CheckNetEvnPage.ID;
CheckNetEvnPageDotNetLbl:=TLabel.Create(CheckNetEvnPage);
CheckNetEvnPageDotNetLbl.Parent:=CheckNetEvnPage.Surface;
CheckNetEvnPageDotNetLbl.Caption:='dotnet46';
CheckNetEvnPageBtn:=TButton.Create(CheckNetEvnPage);
CheckNetEvnPageBtn.Parent:=CheckNetEvnPage.Surface;
CheckNetEvnPageBtn.Caption:='检测net环境';
CheckNetEvnPageBtn.Onclick:=@CheckNetEvnPageBtnInstallOnclick;
CheckNetEvnPageBtn.Top:= CheckNetEvnPageDotNetLbl.Top;
CheckNetEvnPageBtn.Left:= CheckNetEvnPageDotNetLbl.Left + 200;
CheckNetEvnPageBtnInstall:=TButton.Create(CheckNetEvnPage);
CheckNetEvnPageBtnInstall.Parent:=CheckNetEvnPage.Surface;
CheckNetEvnPageBtnInstall.Caption:='安装net环境';
CheckNetEvnPageBtnInstall.Onclick:=@InstallDotNet46ButtonOnClick;
CheckNetEvnPageBtnInstall.Top:= CheckNetEvnPageBtn.Top;
CheckNetEvnPageBtnInstall.Left:= CheckNetEvnPageBtn.Left + 200;
CheckNetEvnPageVC14x64NetLbl:=TLabel.Create(CheckNetEvnPage);
CheckNetEvnPageVC14x64NetLbl.Parent:=CheckNetEvnPage.Surface;
CheckNetEvnPageVC14x64NetLbl.Caption:='VC16X64';
CheckNetEvnPageVC14x64NetLbl.Top:= CheckNetEvnPageDotNetLbl.Top + 40;
CheckNetEvnPageBtnVcCheck:=TButton.Create(CheckNetEvnPage);
CheckNetEvnPageBtnVcCheck.Parent:=CheckNetEvnPage.Surface;
CheckNetEvnPageBtnVcCheck.Caption:='检测vc环境';
CheckNetEvnPageBtnVcCheck.Onclick:=@CheckNetEvnPageBtnVcCheckOnClick;
CheckNetEvnPageBtnVcCheck.Top:= CheckNetEvnPageBtn.Top + 40;
CheckNetEvnPageBtnVcCheck.Left:= CheckNetEvnPageBtn.Left
CheckNetEvnPageBtnVcInstall:=TButton.Create(CheckNetEvnPage);
CheckNetEvnPageBtnVcInstall.Parent:=CheckNetEvnPage.Surface;
CheckNetEvnPageBtnVcInstall.Caption:='安装vc环境';
CheckNetEvnPageBtnVcInstall.Onclick:=@CheckNetEvnPageBtnVcInstallOnClick;
CheckNetEvnPageBtnVcInstall.Top:= CheckNetEvnPageBtn.Top + 40;
CheckNetEvnPageBtnVcInstall.Left:= CheckNetEvnPageBtn.Left + 200
{安装完显示信息}
InstalledShowInfoPage:=CreateCustomPage(wpInstalling, '安装完成', '已安装成功,请详细阅读操作手册。');
//InstalledShowInfoPage:=CreateCustomPage(CheckNetEvnPageID, '安装完成', '已安装成功,请详细阅读操作手册。');
InstalledShowInfoPageID:=InstalledShowInfoPage.ID;
InstalledShowInfoPageLbl1:=TLabel.Create(InstalledShowInfoPage);
InstalledShowInfoPageLbl1.Parent:=InstalledShowInfoPage.Surface;
InstalledShowInfoPageLbl1.Caption:='请使用谷歌浏览器登录';
InstalledShowInfoPageLbl2:=TLabel.Create(InstalledShowInfoPage);
InstalledShowInfoPageLbl2.Parent:=InstalledShowInfoPage.Surface;
InstalledShowInfoPageLbl2.Caption:='http://localhost:18080';
InstalledShowInfoPageLbl2.Top:=InstalledShowInfoPageLbl1.Top;
InstalledShowInfoPageLbl2.Left:=InstalledShowInfoPageLbl1.Left + 200;
InstalledShowInfoPageLbl2.Font.Color:=clBlue;
InstalledShowInfoPageLbl2.Font.Style:=[fsUnderline];
InstalledShowInfoPageLbl3:=TLabel.Create(InstalledShowInfoPage);
InstalledShowInfoPageLbl3.Parent:=InstalledShowInfoPage.Surface;
InstalledShowInfoPageLbl3.Caption:='用户名:admin,密码:admin';
InstalledShowInfoPageLbl3.Top:=InstalledShowInfoPageLbl1.Top + 20;
InstalledShowInfoPageLbl3.Left:=InstalledShowInfoPageLbl1.Left + 200;
InstalledShowInfoPageLbl4:=TLabel.Create(InstalledShowInfoPage);
InstalledShowInfoPageLbl4.Parent:=InstalledShowInfoPage.Surface;
InstalledShowInfoPageLbl4.Caption:='请详细阅读:';
InstalledShowInfoPageLbl4.Top:=InstalledShowInfoPageLbl1.Top + 60;
InstalledShowInfoPageLbl4.Left:=InstalledShowInfoPageLbl1.Left;
InstalledShowInfoPageLbl5:=TLabel.Create(InstalledShowInfoPage);
InstalledShowInfoPageLbl5.Parent:=InstalledShowInfoPage.Surface;
InstalledShowInfoPageLbl5.Caption:='华远智能信息发布系统操作手册.pdf';
InstalledShowInfoPageLbl5.Top:=InstalledShowInfoPageLbl4.Top;
InstalledShowInfoPageLbl5.Left:=InstalledShowInfoPageLbl1.Left + 200;
InstalledShowInfoPageLbl5.Font.Color:=clBlue;
InstalledShowInfoPageLbl5.Font.Style:=[fsUnderline];
InstalledShowInfoPageLbl6:=TLabel.Create(InstalledShowInfoPage);
InstalledShowInfoPageLbl6.Parent:=InstalledShowInfoPage.Surface;
InstalledShowInfoPageLbl6.Caption:='请记住这些关键信息,以后会经常用到。';
InstalledShowInfoPageLbl6.Top:=InstalledShowInfoPageLbl5.Top + 60;
InstalledShowInfoPageLbl6.Font.Color:=clRed;
end;
//************创建自定义向导页面结束***********************************************
//*********点击URLLabel事件****************************************************
procedure URLLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExecAsOriginalUser('open', 'http://www.hysy-it.com/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
//*********点击URLLabel事件****************************************************
procedure CreateAboutButtonAndURLLabel(ParentForm: TSetupForm; CancelButton: TNewButton);
var
AboutButton: TNewButton;
URLLabel: TNewStaticText;
begin
AboutButton := TNewButton.Create(ParentForm);
AboutButton.Left := ParentForm.ClientWidth - CancelButton.Left - CancelButton.Width;
AboutButton.Top := CancelButton.Top;
AboutButton.Width := CancelButton.Width;
AboutButton.Height := CancelButton.Height;
AboutButton.Anchors := [akLeft, akBottom];
AboutButton.Caption := '&关于...';
AboutButton.OnClick := @AboutButtonOnClick;
AboutButton.Parent := ParentForm;
URLLabel := TNewStaticText.Create(ParentForm);
URLLabel.Caption := 'www.hysy-it.com';
URLLabel.Cursor := crHand;
URLLabel.OnClick := @URLLabelOnClick;
URLLabel.Parent := ParentForm;
{ Alter Font *after* setting Parent so the correct defaults are inherited first }
URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
URLLabel.Font.Color := clHotLight
URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;
URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20);
URLLabel.Anchors := [akLeft, akBottom];
end;
//**************************CreateAboutButtonAndURLLabel*******************
//***************************************************************************************
procedure InitializeWizard();
begin
WizardForm.LICENSEACCEPTEDRADIO.Checked:=true;
CreateTheWizardPages;
CreateAboutButtonAndURLLabel(WizardForm, WizardForm.CancelButton);
end;
//***************************************************************************************
procedure InitializeUninstallProgressForm();
begin
CreateAboutButtonAndURLLabel(UninstallProgressForm, UninstallProgressForm.CancelButton);
end;
//*****************************************************************************************
function NextButtonClick(CurPageID:Integer): Boolean;
begin
if CurpageId=CheckNetEvnPageID then
begin
if not IsDotNetDetected('v4.6', 0) then begin
MsgBox('系统没有net46环境,请安装net46环境。', mbInformation, MB_OK);
end else
if not IsVc14x64Detected then begin
MsgBox('系统没有vc14x64环境,请安装vc14x64环境。', mbInformation, MB_OK);
end else
result:=true;
end else
result:=true;
end;
//*********************************************************************************************
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
case CurUninstallStep of
usUninstall:
begin
//MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall is about to start.', mbInformation, MB_OK)
// ...insert code to perform pre-uninstall tasks here...
end;
usPostUninstall:
begin
//MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall just finished.', mbInformation, MB_OK);
// ...insert code to perform post-uninstall tasks here...
end;
end;
end;
//**********************************************************
//文件内容替换方法
// SrcFIle:文件路径
// sFrom:源字符
// STo: 填的的字符
procedure FileReplace(SrcFile, sFrom, sTo: String);
var
UnicodeStr:String;
FileContent: AnsiString;
begin
//Load srcfile to a string
LoadStringFromFile(SrcFile, FileContent);
//Replace Fraomstring by toString in file string content
//StringChange (sTo,'/', '\');
UnicodeStr :=String(FileContent);
StringChangeEx (UnicodeStr, sFrom, sTo,True);
//Replace old content srcfile by the new content
DeleteFile(SrcFile);
SaveStringToFile(SrcFile,UnicodeStr, True);
end;
//**********************************************************
//************************************************************
procedure CurStepChanged(CurStep: TSetupStep);
var
fileName:String;
SRVROOTPATH:String;//apahce 工作目录
WWWPATH:String; //网站目录
PHPPATH:String; //http-php.conf
PHPINIPATH:String;//php.ini 的扩展目录
ErrorCode: Integer;
begin
SRVROOTPATH :=ExpandConstant('{app}\apache');
WWWPATH :=ExpandConstant('{app}\www');
PHPPATH:=ExpandConstant('{app}');
PHPINIPATH:=ExpandConstant('{app}\php\ext');
//SqlserverIni:=ExpandConstant('{app}\sqlserverdata');
//复制完文件后执行
if CurStep=ssPostInstall then
begin
filename := ExpandConstant('{app}\apache\conf\httpd.conf');
FileReplace(filename, '@@SRVROOT@@',SRVROOTPATH);
filename := ExpandConstant('{app}\apache\conf\httpd.conf');
FileReplace(filename, '@@www@@',WWWPATH);
filename := ExpandConstant('{app}\apache\conf\extra\httpd-php.conf');
FileReplace(filename, '@@php@@',PHPPATH);
filename := ExpandConstant('{app}\php\php.ini');
FileReplace(filename, '@@extensiondir@@',PHPINIPATH);
end;
if CurStep=ssDone then
begin
ShellExecAsOriginalUser('open', 'http://localhost:18080', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
end;
//****************************************************************
//主要是程序调用“下一步”,然后在ShouldSkipPage函数中进行跳过。
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if PageID=wpReady then
result := true;
end;
function InitializeSetup: Boolean;
begin
// Show the contents of Readme.txt (non Unicode) in a message box
ExtractTemporaryFile('ConfigurationFile_simple.ini');
//log(ExpandConstant('{tmp}\ConfigurationFile_simple.ini'));
Result := True;
end;
procedure CurPageChanged(CurPageID: Integer);
var
SQLSERVERDATAPATH:string;
SqlInifilename:string;
ResultCode:Integer;
begin
if CurPageID=wpInstalling then begin
//修改SQLSERVER实例安装路径
SQLSERVERDATAPATH:=ExpandConstant('{app}\sqlserverdata');
SqlInifilename := ExpandConstant('{tmp}\ConfigurationFile_simple.ini');
FileReplace(SqlInifilename, '@@INSTANCEDIR@@',SQLSERVERDATAPATH);
end;
if CurPageID=InstalledShowInfoPageID then begin
Exec(ExpandConstant('{app}\autoInstallapache.bat'),'','',SW_SHOW,ewWaitUntilTerminated,ResultCode);//重启apache脚本
end;
end;