Inno Setup 腳本
阿新 • • 發佈:2018-10-18
tco ole phi cells let war lena 之前 ignore
給你個我用的例子:
Delphi/Pascal code ?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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
; 腳本用 Inno Setup 腳本向導生成。
; 查閱文檔獲取創建 INNO SETUP 腳本文件詳細資料!
[Setup]
AppName=Common downloader
AppVerName=Common downloader
DefaultDirName= {pf} \XXX\Common downloader
DefaultGroupName=XXX\Common downloader
DisableProgramGroupPage=yes
OutputDir= .\Setup
OutputBaseFilename=Common downloader setup V1 .0.0
Compression=lzma
SolidCompression=yes
VersionInfoCompany=XXX
VersionInfoVersion= 1.0.0
[Languages]
Name: "Chinese"; MessagesFile: "compiler:Languages\Chinese . isl"
Name: "English"; MessagesFile: "compiler:Languages\English . isl"
[Tasks]
Name: "desktopicon"; Description: " {cm:CreateDesktopIcon} "; GroupDescription: " {cm:AdditionalIcons} "; Flags: dontinheritcheck
[Files]
Source: "CMDL . exe"; DestName: "Common downloader . exe"; DestDir: " {app} "; Flags: ignoreversion
Source: "DL . dll"; DestDir: " {app} "; Flags: ignoreversion
Source: "DM . dll"; DestDir: " {app} "; Flags: ignoreversion
Source: "config . ini"; DestDir: " {app} "; Flags: ignoreversion
Source: "App\*"; DestDir: " {app} \\App"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "Boot\*"; DestDir: " {app} \\Boot"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "Resource_cn\*"; DestDir: " {app} \Resource"; Languages: Chinese; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "Resource_en\*"; DestDir: " {app} \Resource"; Languages: English; Flags: ignoreversion recursesubdirs createallsubdirs
; 註意: 不要在任何共享系統文件中使用“Flags: ignoreversion”
[Icons]
Name: " {group} \Common downloader"; Filename: " {app} \Common downloader . exe"
Name: " {group} \ {cm:UninstallProgram,Common downloader} "; Filename: " {uninstallexe} "
Name: " {userdesktop} \Common downloader"; Filename: " {app} \Common downloader . exe"; Tasks: desktopicon
[Run]
Filename: " {app} \Common downloader . exe"; Description: " {cm:LaunchProgram,Common downloader} "; Flags: nowait postinstall skipifsilent
[Registry]
Root: HKLM; Subkey: "Software\XXX"; Flags: createvalueifdoesntexist
Root: HKLM; Subkey: "Software\XXX\Common downloader"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "Software\XXX\Common downloader"; ValueType: string ; ValueName: "Path"; ValueData: " {app} "
Root: HKLM; Subkey: "Software\XXX\Common downloader"; ValueType: string ; ValueName: "Version"; ValueData: "V1 .0.0 "
Root: HKLM; Subkey: "Software\XXX\Common downloader"; ValueType: dword; ValueName: "VersionNum"; ValueData: " 100 "
Root: HKLM; Subkey: "Software\XXX\Common downloader"; ValueType: string ; ValueName: "Release Date"; ValueData: " 2008 / 09 / 29 "
[Code]
function InitializeSetup(): Boolean ;
var
Version: string ;
strPath: string ;
ResultCode: Integer ;
begin
Result:= TRUE ;
//read the version
if RegQueryStringValue(HKEY_LOCAL_MACHINE, ‘Software\XXX\Common downloader‘ ,
‘Version‘ , Version) then
begin
// Successfully read the value
Version := Format( ‘Exist the version %s,whether uninstall it?‘ ,[Version]);
if MsgBox(Version,mbConfirmation,MB_YESNO) = IDYES then
begin
//read the path
if RegQueryStringValue(HKEY_LOCAL_MACHINE, ‘Software\XXX\Common downloader‘ ,
‘Path‘ , strPath) then
begin
// Successfully read the value
strPath:= strPath + ‘\unins000.exe‘ ;
Exec(ExpandConstant(strPath), ‘‘ , ‘‘ , SW_SHOW,
ewWaitUntilTerminated, ResultCode);
end ;
end else
Result:= FALSE ;
end ;
end ;
|
這個例子可以在安裝之前卸載以前的版本,並提示你卸載之前的版本信息。
Inno Setup 腳本