1. 程式人生 > >Inno Setup 腳本

Inno Setup 腳本

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 腳本