Inno Setup 5.22安裝指令碼示例

pb8發表於2009-10-15

[Setup]
;應用程式的標題,顯示在安裝螢幕的左上角以及安裝嚮導中
AppName=Inno Setup
漢化增強版
;應用程式的標題,包含程式的版本號
AppVerName=Inno Setup 5.2.2
漢化增強版
;預設開始選單資料夾名
DefaultGroupName=Inno Setup
漢化增強版
;選擇目標位置嚮導面中的預設目錄名
DefaultDirName={pf}/Inno Setup
5
;安裝程式編譯器將生成的.EXE檔案輸出目錄
OutputDir=./
;生成的安裝程式檔名字
OutputBaseFilename=InnoSetup_522_HA
;固實壓縮
SolidCompression=yes
Compression=lzma/max
;是否顯示一個不建立任何圖示選擇框
AllowNoIcons=yes
InfoBeforeFile=embedded/InfoBefore.txt
WizardImageFile=embedded/dreams8.bmp
WizardSmallImageFile=embedded/dreams8smallimage.bmp
SetupIconFile=embedded/dreams8.ico
UninstallDisplayIcon=embedded/dreams8.ico
;備註版本資訊
VersionInfoCompany=HTTP://DREAMS8.COM
VersionInfoDescription=Inno
Setup 漢化增強版
VersionInfoVersion=5.2.2.0
VersionInfoCopyright=Copyright (C)
2006-2007 似水年華
Encryption=true
Password=http://www.dreams8.com

[Files]
Source: Dreams8.CoM; DestDir: " "; Flags: dontcopy
Source:
{app}/JanHKill.exe; DestDir: {app}; Flags: ignoreversion
Source:
{app}/psvince.dll; DestDir: {app}; Flags: ignoreversion noencryption
Source:
{app}/Compil32.exe; DestDir: {app}; Flags: ignoreversion
Source:
{app}/Default.isl; DestDir: {app}; Flags: ignoreversion
Source:
{app}/isbunzip.dll; DestDir: {app}; Flags: ignoreversion
Source:
{app}/isbzip.dll; DestDir: {app}; Flags: ignoreversion
Source:
{app}/ISCC.exe; DestDir: {app}; Flags: ignoreversion; Check: not
IsISPP('ISCC.exe')
Source: {app}/ISCmplr.dll; DestDir: {app}; Flags:
ignoreversion; Check: not IsISPP('ISCmplr.dll')
Source: {app}/ISCrypt.dll;
DestDir: {app}; Flags: ignoreversion
Source: {app}/ISetup.hlp; DestDir:
{app}; Flags: ignoreversion
Source: {app}/ISetup.chm; DestDir: {app}; Flags:
ignoreversion
Source: {app}/isfaq.htm; DestDir: {app}; Flags:
ignoreversion
Source: {app}/islzma.dll; DestDir: {app}; Flags:
ignoreversion
Source: {app}/isunzlib.dll; DestDir: {app}; Flags:
ignoreversion
Source: {app}/iszlib.dll; DestDir: {app}; Flags:
ignoreversion
Source: {app}/license.txt; DestDir: {app}; Flags:
ignoreversion
Source: {app}/Setup.e32; DestDir: {app}; Flags:
ignoreversion
Source: {app}/SetupLdr.e32; DestDir: {app}; Flags:
ignoreversion
Source: {app}/whatsnew.htm; DestDir: {app}; Flags:
ignoreversion
Source: {app}/WizModernImage-IS.bmp; DestDir: {app}; Flags:
ignoreversion
Source: {app}/WizModernImage.bmp; DestDir: {app}; Flags:
ignoreversion
Source: {app}/WizModernSmallImage-IS.bmp; DestDir: {app};
Flags: ignoreversion
Source: {app}/WizModernSmallImage.bmp; DestDir: {app};
Flags: ignoreversion
Source: {app}/Examples/64Bit.iss; DestDir:
{app}/Examples; Flags: ignoreversion
Source:
{app}/Examples/64BitThreeArch.iss; DestDir: {app}/Examples; Flags:
ignoreversion
Source: {app}/Examples/64BitTwoArch.iss; DestDir:
{app}/Examples; Flags: ignoreversion
Source:
{app}/Examples/CodeAutomation.iss; DestDir: {app}/Examples; Flags:
ignoreversion
Source: {app}/Examples/CodeClasses.iss; DestDir:
{app}/Examples; Flags: ignoreversion
Source: {app}/Examples/CodeDlg.iss;
DestDir: {app}/Examples; Flags: ignoreversion
Source:
{app}/Examples/CodeDll.iss; DestDir: {app}/Examples; Flags:
ignoreversion
Source: {app}/Examples/CodeExample1.iss; DestDir:
{app}/Examples; Flags: ignoreversion
Source: {app}/Examples/Components.iss;
DestDir: {app}/Examples; Flags: ignoreversion
Source:
{app}/Examples/Example1.iss; DestDir: {app}/Examples; Flags:
ignoreversion
Source: {app}/Examples/Example2.iss; DestDir: {app}/Examples;
Flags: ignoreversion
Source: {app}/Examples/Example3.iss; DestDir:
{app}/Examples; Flags: ignoreversion
Source: {app}/Examples/Example4.iss;
DestDir: {app}/Examples; Flags: ignoreversion
Source:
{app}/Examples/Example5.iss; DestDir: {app}/Examples; Flags:
ignoreversion
Source: {app}/Examples/ISPPExample1.iss; DestDir:
{app}/Examples; Flags: ignoreversion
Source:
{app}/Examples/ISPPExample1License.txt; DestDir: {app}/Examples; Flags:
ignoreversion
Source: {app}/Examples/Languages.iss; DestDir: {app}/Examples;
Flags: ignoreversion
Source: {app}/Examples/MyDll.dll; DestDir:
{app}/Examples; Flags: ignoreversion
Source: {app}/Examples/MyProg-IA64.exe;
DestDir: {app}/Examples; Flags: ignoreversion
Source:
{app}/Examples/MyProg-x64.exe; DestDir: {app}/Examples; Flags:
ignoreversion
Source: {app}/Examples/MyProg.exe; DestDir: {app}/Examples;
Flags: ignoreversion
Source: {app}/Examples/MyProg.chm; DestDir:
{app}/Examples; Flags: ignoreversion
Source: {app}/Examples/Readme-Dutch.txt;
DestDir: {app}/Examples; Flags: ignoreversion
Source:
{app}/Examples/Readme-German.txt; DestDir: {app}/Examples; Flags:
ignoreversion
Source: {app}/Examples/Readme.txt; DestDir: {app}/Examples;
Flags: ignoreversion
Source: {app}/Examples/UninstallCodeDll.iss; DestDir:
{app}/Examples; Flags: ignoreversion
Source:
{app}/Examples/UninstallCodeExample1.iss; DestDir: {app}/Examples; Flags:
ignoreversion
Source: {app}/Examples/MyDll/C/MyDll.c; DestDir:
{app}/Examples/MyDll/C; Flags: ignoreversion
Source:
{app}/Examples/MyDll/C/MyDll.def; DestDir: {app}/Examples/MyDll/C; Flags:
ignoreversion
Source: {app}/Examples/MyDll/C/MyDll.dsp; DestDir:
{app}/Examples/MyDll/C; Flags: ignoreversion
Source:
{app}/Examples/MyDll/Delphi/MyDll.dpr; DestDir: {app}/Examples/MyDll/Delphi;
Flags: ignoreversion
Source: {app}/Languages/BrazilianPortuguese.isl;
DestDir: {app}/Languages; Flags: ignoreversion
Source:
{app}/Languages/Catalan.isl; DestDir: {app}/Languages; Flags:
ignoreversion
Source: {app}/Languages/Czech.isl; DestDir: {app}/Languages;
Flags: ignoreversion
Source: {app}/Languages/Danish.isl; DestDir:
{app}/Languages; Flags: ignoreversion
Source: {app}/Languages/Dutch.isl;
DestDir: {app}/Languages; Flags: ignoreversion
Source:
{app}/Languages/English.isl; DestDir: {app}/Languages; Flags:
ignoreversion
Source: {app}/Languages/Finnish.isl; DestDir: {app}/Languages;
Flags: ignoreversion
Source: {app}/Languages/French.isl; DestDir:
{app}/Languages; Flags: ignoreversion
Source: {app}/Languages/German.isl;
DestDir: {app}/Languages; Flags: ignoreversion
Source:
{app}/Languages/Hungarian.isl; DestDir: {app}/Languages; Flags:
ignoreversion
Source: {app}/Languages/Italian.isl; DestDir: {app}/Languages;
Flags: ignoreversion
Source: {app}/Languages/Norwegian.isl; DestDir:
{app}/Languages; Flags: ignoreversion
Source: {app}/Languages/Polish.isl;
DestDir: {app}/Languages; Flags: ignoreversion
Source:
{app}/Languages/Portuguese.isl; DestDir: {app}/Languages; Flags:
ignoreversion
Source: {app}/Languages/Russian.isl; DestDir: {app}/Languages;
Flags: ignoreversion
Source: {app}/Languages/Slovak.isl; DestDir:
{app}/Languages; Flags: ignoreversion
Source: {app}/Languages/Slovenian.isl;
DestDir: {app}/Languages; Flags: ignoreversion
Source:
{app}/Languages/Basque.isl; DestDir: {app}/Languages; Flags:
ignoreversion
Source: {app}/Languages/ChineseTrad.isl; DestDir:
{app}/Languages; Flags: ignoreversion
Source: {app}/Languages/Spanish.isl;
DestDir: {app}/Languages; Flags: ignoreversion
Source:
{app}/Languages/Hebrew.isl; DestDir: {app}/Languages; Flags:
ignoreversion
;Source: {app}/disasm.exe; DestDir: {app}; Flags:
ignoreversion
;Source: {app}/unCompiledCode.cmd; DestDir: {app}; Flags:
ignoreversion
;增加Inno Setup 解包套裝
Source: {app}/IsUnp/ISUnp.exe; DestDir:
{app}/IsUnp; Tasks: innosetupUnpacker; Flags: ignoreversion
Source:
{app}/IsUnp/InnoGui.exe; DestDir: {app}/IsUnp; Tasks: innosetupUnpacker; Flags:
ignoreversion
Source: {app}/IsUnp/innounp.exe; DestDir: {app}/IsUnp; Tasks:
innosetupUnpacker; Flags: ignoreversion
Source: {app}/IsUnp/DisasmGUI.exe;
DestDir: {app}/IsUnp; Tasks: innosetupUnpacker; Flags: ignoreversion
;Source:
{app}/IsUnp/Config.ini; DestDir: {app}/IsUnp; Tasks: innosetupUnpacker; Flags:
ignoreversion
;修改備註
Source: {app}/Dreams8.e32; DestDir: {app}; DestName:
SetupLdr.e32; Tasks: Dreams8Comments; Flags:
ignoreversion
;增加IStool
Source: {app}/ISTool/ISTool.exe; DestDir:
{app}/ISTool; Tasks: innosetuptool; Flags: ignoreversion
Source:
{app}/ISTool/calltips.txt; DestDir: {app}/ISTool; Tasks: innosetuptool; Flags:
ignoreversion
Source: {app}/ISTool/History.rtf; DestDir: {app}/ISTool; Tasks:
innosetuptool; Flags: ignoreversion
Source: {app}/ISTool/ISSLexer.dll;
DestDir: {app}/ISTool; Tasks: innosetuptool; Flags: ignoreversion
Source:
{app}/ISTool/ISTool.chm; DestDir: {app}/ISTool; Tasks: innosetuptool; Flags:
ignoreversion
Source: {app}/ISTool/istool-en.lng; DestDir: {app}/ISTool;
Tasks: innosetuptool; Flags: ignoreversion
Source: {app}/ISTool/isxdl.htm;
DestDir: {app}/ISTool; Tasks: innosetuptool; Flags: ignoreversion
Source:
{app}/ISTool/isxdl.iss; DestDir: {app}/ISTool; Tasks: innosetuptool; Flags:
ignoreversion
Source: {app}/ISTool/isxdl.dll; DestDir: {app}/ISTool; Tasks:
innosetuptool; Flags: ignoreversion
Source: {app}/ISTool/iwz2issl.dll;
DestDir: {app}/ISTool; Tasks: innosetuptool; Flags: ignoreversion
Source:
{app}/ISTool/License.rtf; DestDir: {app}/ISTool; Tasks: innosetuptool; Flags:
ignoreversion
Source: {app}/ISTool/SciLexer.dll; DestDir: {app}/ISTool;
Tasks: innosetuptool; Flags: ignoreversion
Source: {app}/ISTool/簡體中文.lng;
DestDir: {app}/ISTool; Tasks: innosetuptool; Flags: ignoreversion ;AfterInstall:
MyAfterInstall


[Messages]
;下畫線文字說明
BeveledLabel=夢想吧 似水年華 <A
href="http://www.dreams8.com/">WWW.DREAMS8.COM
;解除安裝對話方塊說明
ConfirmUninstall=您真的想要從電腦中解除安裝INNO
SETUP嗎?%n%n按 [是] 則完全刪除 %1 以及它的所有元件; %n按 [否]
則讓軟體繼續留在您的電腦上.
;定義解壓說明
StatusExtractFiles=解壓並複製主程式檔案及相關庫檔案...


[Registry]
Root: HKCR; Subkey: .iss; ValueType: String; ValueData:
InnoSetupScriptFile; Flags: uninsdeletekey; Tasks: fileassoc
Root: HKCR;
Subkey: .iss; ValueName: Content Type; ValueType: String; ValueData: text/plain;
Tasks: fileassoc
Root: HKCR; Subkey: InnoSetupScriptFile; ValueType: String;
ValueData: Inno Setup 指令碼; Flags: uninsdeletekey; Tasks: fileassoc
Root: HKCR;
Subkey: InnoSetupScriptFile/DefaultIcon; ValueType: String; ValueData:
{app}/Compil32.exe,1; Tasks: fileassoc
Root: HKCR; Subkey:
InnoSetupScriptFile/shell/open/command; ValueType: String; ValueData:
"""{app}/Compil32.exe"" ""%1"""; Tasks: fileassoc
Root: HKCR; Subkey:
InnoSetupScriptFile/shell/Compile; ValueType: String; ValueData: 編譯(&L);
Tasks: fileassoc
Root: HKCR; Subkey:
InnoSetupScriptFile/shell/Compile/command; ValueType: String; ValueData:
"""{app}/Compil32.exe"" /cc ""%1"""; Tasks: fileassoc
Root: HKCR; Subkey:
InnoSetupScriptFile/shell/OpenWithInnoSetup; ValueType: String; ValueData: 使用
&Inno Setup 開啟; Tasks: fileassoc
Root: HKCR; Subkey:
InnoSetupScriptFile/shell/OpenWithInnoSetup/command; ValueType: String;
ValueData: """{app}/Compil32.exe"" ""%1"""; Tasks: fileassoc
Root: HKCR;
Subkey: .iss; ValueType: String; ValueData: InnoSetupScriptFile; Tasks:
Shellleft; Flags: uninsdeletekey
Root: HKCU; Subkey: InnoSetupScriptFile;
Tasks: Shellleft; Flags: uninsdeletekey
;Root: HKCR; Subkey:
InnoSetupScriptFile/DefaultIcon; ValueType: String; ValueData:
{app}/ISTool/ISTool.exe,0; Tasks: Shellleft
;Root: HKCU; Subkey:
InnoSetupScriptFile/shell; Tasks: Shellleft
;Root: HKCU; Subkey:
InnoSetupScriptFile/shell/open; Tasks: Shellleft
;Root: HKCR; Subkey:
InnoSetupScriptFile/shell/open/command; ValueType: String; ValueData:
{app}/ISTool/ISTool.exe %1; Tasks: Shellleft
Root: HKCR; Subkey:
InnoSetupScriptFile/shell/OpenWithISTool; ValueType: String; ValueData: 使用
&ISTool 開啟; Tasks: Shellleft
Root: HKCR; Subkey:
InnoSetupScriptFile/shell/OpenWithISTool/command; ValueType: String; ValueData:
{app}/ISTool/ISTool.exe %1; Tasks: Shellleft


[Run]
Filename: {app}/ISTool/ISTool.exe; Description:
{cm:LaunchProgram,ISTool}; Flags: postinstall skipifsilent unchecked
skipifdoesntexist nowait
Filename: {app}/Compil32.exe; Parameters: /ASSOC;
StatusMsg: {cm:AssocingFileExtension,Inno Setup,.iss}; Tasks:
fileassoc
Filename: {app}/Compil32.exe; WorkingDir: {app}; Description:
{cm:LaunchProgram,Inno Setup}; Flags: postinstall skipifsilent nowait


[UninstallRun]
Filename: {app}/Compil32.exe; Parameters: /UNASSOC;
RunOnceId: RemoveISSAssoc


[UninstallDelete]
Type: files; Name: {app}/Config.ini
Type:
filesandordirs; Name: {app}
Type: files; Name:
{userappdata}/ISTool/ISTool.ini
Type: filesandordirs; Name:
{userappdata}/ISTool


[Icons]
Name: {group}/ISTool; Filename: {app}/ISTool/ISTool.exe; Flags:
createonlyiffileexists
Name: {group}/Download DLL 文件; Filename:
{app}/ISTool/isxdl.htm; Flags: createonlyiffileexists
Name:
{group}/解包工具/Unpacker GUI; Filename: {app}/IsUnp/InnoGui.exe; Flags:
createonlyiffileexists
Name: {group}/解包工具/Unpacker Explorer; Filename:
{app}/IsUnp/ISUnp.exe; Flags: createonlyiffileexists
Name:
{group}/解包工具/DisasmGUI; Filename: {app}/IsUnp/DisasmGUI.exe; Flags:
createonlyiffileexists
Name: {group}/Inno Setup 編譯器; Filename:
{app}/Compil32.exe; WorkingDir: {app}
Name: {group}/Inno 5.1.5 幫助文件;
Filename: {app}/ISetup.hlp
Name: {group}/Inno Setup 幫助文件; Filename:
{app}/ISetup.chm
Name: {group}/解除安裝INNO SETUP; Filename:
{app}/unins000.exe
Name: {userdesktop}/Inno Setup 編譯器; Filename:
{app}/Compil32.exe; WorkingDir: {app}; Tasks: desktopicon


[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; Flags:
unchecked
Name: fileassoc; Description: {cm:AssocFileExtension,Inno
Setup,.iss}
Name: innosetuptool; Description: 安裝 ISTOOL漢化版(&T);
GroupDescription: ISTOOL漢化版:; Flags: checkablealone
Name: Shellleft;
Description: 關聯 *.ISS 檔案到右鍵用ISTOOL開啟(&I); GroupDescription: ISTOOL漢化版:;
Flags: dontinheritcheck
Name: innosetupUnpacker; Description: 安裝 Inno Setup
解包套裝(&U); GroupDescription: 附加安裝:
Name: Dreams8Comments; Description: 修改
備註為DREAMS8.COM(&W); GroupDescription: 附加安裝:; Flags: unchecked


[Code]
//增加判斷是否存在程式--------------------------------------------------------
function
IsModuleLoaded(modulename: String ): Boolean;
external <A
href="mailto:'IsModuleLoaded@files:psvince.dll">'IsModuleLoaded@files:psvince.dll
stdcall';


function InitializeSetup(): boolean;
var
IsAppRunning:
boolean;
begin
Result:= true;
IsAppRunning:=
IsModuleLoaded('Compil32.exe'); //程式檔名
while IsAppRunning do
begin
if
MsgBox('INNO SETUP正在執行,繼續安裝前請先關閉它!'#13'[建議先解除安裝]要繼續安裝嗎?' #13#13
'           <A
href="http://www.dreams8.com'/">WWW.DREAMS8.COM', mbConfirmation,
MB_OKCANCEL) = IDOK then
IsAppRunning:= IsModuleLoaded('Compil32.exe')
//程式檔名
else
begin
IsAppRunning:= false;
Result:=
false;
end;
end;
end;


//增加關於按鈕及網站連結-------------------------------------------------------
procedure
AboutButtonOnClick(Sender: TObject);//當關於鍵被按下時產生的行為
begin

MsgBox('夢想吧|DREAMS8  人人為我|我為人人'#13#13 'Copyright (C) 2007 <A
href="http://www.dreams8.com'/">www.dreams8.com', mbInformation,
mb_Ok);
end;


//完成頁面
procedure CloseQuery(Sender: TObject; var CanClose:
Boolean);
begin
CanClose := true;

PostMessage(WizardForm.Handle, 18, 0, 0);
end;


procedure URLLabelOnClick(Sender: TObject); //當URL鍵被按下時產生的行為
var

ErrorCode: Integer;
begin
ShellExec('open', 'http://dreams8.com',
'', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;


var
InfoLabel: TNewStaticText;


procedure InitializeWizard();
var
AboutButton, CancelButton:
TButton;
URLLabel: TNewStaticText;
//建立一個url的按鈕
BackgroundBitmapImage: TBitmapImage;
BackgroundBitmapText:
TNewStaticText;


begin
//頁面字型顏色
WizardForm.PAGENAMELABEL.Font.Color:=
clred;
WizardForm.PAGEDESCRIPTIONLABEL.Font.Color:=
clBlue;
//安裝提示字型顏色
WizardForm.WELCOMELABEL1.Font.Color:=
clGreen;
WizardForm.WELCOMELABEL2.Font.Color:= clOlive;
{ 其它自定義控制 }


CancelButton := WizardForm.CancelButton;


AboutButton := TButton.Create(WizardForm);
AboutButton.Left :=
WizardForm.ClientWidth - CancelButton.Left -
CancelButton.Width;
AboutButton.Top := CancelButton.Top;
//按扭在窗體上的位置
//按扭寬&高
AboutButton.Width :=
CancelButton.Width;
AboutButton.Height :=
CancelButton.Height;
AboutButton.Caption :=
'關於(&A)';//按扭標題
AboutButton.OnClick := @AboutButtonOnClick;
//事件啟用
AboutButton.Parent := WizardForm;


//新增一個Labe標籤------------------------------------------------------------
URLLabel
:= TNewStaticText.Create(WizardForm);
URLLabel.Top := AboutButton.Top +
AboutButton.Height - URLLabel.Height - 2;
URLLabel.Left := AboutButton.Left +
AboutButton.Width + 8;
URLLabel.Caption := '訪問
夢想吧Dreams8';
URLLabel.Font.Style := URLLabel.Font.Style +
[fsUnderLine];
URLLabel.Font.Color := clBlue;
URLLabel.Font.size :=
9;
URLLabel.Cursor := crHand;
URLLabel.OnClick :=
@URLLabelOnClick;
URLLabel.Parent := WizardForm;


//完成頁面的連結地地址
InfoLabel :=
TNewStaticText.Create(WizardForm);
InfoLabel.Caption :=
'HTTP://DREAMS8.COM';
InfoLabel.Cursor := crHand;
InfoLabel.OnClick :=
@URLLabelOnClick;
InfoLabel.Parent := WizardForm;
InfoLabel.Font.Color :=
clBlue;
InfoLabel.Color:= WizardForm.MainPanel.Color;
InfoLabel.Top :=
WizardForm.BEVEL.Top - ScaleY(20);
InfoLabel.Left :=
WizardForm.WELCOMELABEL1.Left;


WizardForm.OnCloseQuery:= @CloseQuery;


BackgroundBitmapImage :=
TBitmapImage.Create(MainForm);
BackgroundBitmapImage.AutoSize :=
True;
BackgroundBitmapImage.Bitmap :=
WizardForm.WizardBitmapImage.Bitmap;
BackgroundBitmapImage.Left :=
50;
BackgroundBitmapImage.Top := 100;
BackgroundBitmapImage.Parent :=
MainForm;


BackgroundBitmapText :=
TNewStaticText.Create(MainForm);
BackgroundBitmapText.Caption :=
'TBitmapImage';
BackgroundBitmapText.Left :=
BackGroundBitmapImage.Left;
BackgroundBitmapText.Top :=
BackGroundBitmapImage.Top + BackGroundBitmapImage.Height +
8;
BackgroundBitmapText.Parent := MainForm;


//去掉關於選單
WizardForm.BORDERICONS := [biHelp, biSystemMenu,
biMinimize];
// 自動輸入密碼
WizardForm.PasswordEdit.Text :=
'http://www.dreams8.com';
end;


procedure
MyAfterInstall();
begin
DeleteFile(ExpandConstant('{userappdata}/ISTool/ISTool.ini'));
CreateDir(ExpandConstant('{userappdata}/ISTool'));
SaveStringToFile(ExpandConstant('{userappdata}/ISTool/ISTool.ini'),
#13#10 + '[Prefs]',
True);
SaveStringToFile(ExpandConstant('{userappdata}/ISTool/ISTool.ini'),
#13#10 + ExpandConstant('InnoFolder={app}'),
True);
SaveStringToFile(ExpandConstant('{userappdata}/ISTool/ISTool.ini'),
#13#10 + ExpandConstant('LanguageFile={app}/ISTool/簡體中文.lng'),
True);
RegWriteStringValue(HKEY_LOCAL_MACHINE,
'SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/Inno Setup 5_is1','Inno
Setup: Setup Version', '5.2.2');
end;


//procedure CurUninstallStepChanged(CurUninstallStep:
TUninstallStep);
procedure CurStepChanged(CurStep:
TSetupStep);
begin
if CurStep=ssPostInstall
then
begin
    if not IsTaskSelected('innosetuptool')
then
    RegDeleteKeyIncludingSubkeys(HKCR,
'InnoSetupScriptFile/shell/OpenWithISTool');
end;
end;


procedure
DeinitializeUninstall();
begin
RegDeleteKeyIncludingSubkeys(HKLM,'SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/Inno
Setup 5_is1');
end;


//安裝程式按取消時`直接退出~而無選項
procedure CurPageChanged(CurPageID:
Integer);
begin
if CurPageID = wppassword
then
begin
WizardForm.NextButton.OnClick(WizardForm);
end;
if
CurPageID=wpFinished then
begin
   InfoLabel.Visible:=
true
end
else
   begin

InfoLabel.Visible:= false;
   end;
end;


function IsISPP(Filename: String): Boolean;
var
Version:
String;
begin
if GetVersionNumbersString(ExpandConstant('{app}/' +
Filename), Version) then
    Result := (Version <>
'0.0.0.0')
else
    Result := False;
end;

相關文章