博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Inno Setup 脚本
阅读量:6784 次
发布时间:2019-06-26

本文共 3565 字,大约阅读时间需要 11 分钟。

给你个我用的例子:

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
;

这个例子可以在安装之前卸载以前的版本,并提示你卸载之前的版本信息。

转载地址:http://rtbgo.baihongyu.com/

你可能感兴趣的文章
boost笔记
查看>>
time_wait的内核调优
查看>>
网络管理之OSI七层模型篇 Linux详解
查看>>
hadoop初学者MapReduce常见错误
查看>>
LVM之一
查看>>
Raid
查看>>
基于 HTML5 WebGL 的 3D 场景中的灯光效果
查看>>
高可用PXC
查看>>
如何使用光盘构建yum仓库
查看>>
vim编辑器详解
查看>>
centos 7 修改密码
查看>>
Django 信号处理
查看>>
Castle IOC容器与Spring.NET配置之比较
查看>>
《Asp.Net 2.0 揭秘》(九)
查看>>
C++11 lambda表达式
查看>>
不使用DalFactory和IDAL,支持多种数据库应用
查看>>
halcon学习笔记——实例篇(1)车牌识别
查看>>
汇编中参数的传递和堆栈修正【转载】
查看>>
数据库实例: STOREBOOK > 用户 > 编辑 用户: MGMT_VIEW
查看>>
easyui-combobox的取值问题
查看>>