标签:work TBase 最大 两种 分享 磁盘空间 images ant and
[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (生成新的GUID,点击 工具|在IDE中生成GUID。)
AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675}
;程序名
AppName=ISsample
;版本号
AppVerName=ISsample 1.0.0.0
;发布者名
AppPublisher=Hkiss
;相关连接
AppPublisherURL=http://zwkufo.blog.163.com
AppSupportURL=http://zwkufo.blog.163.com
AppUpdatesURL=http://zwkufo.blog.163.com
;默认安装目录
DefaultDirName={pf}\ISsample
;默认开始菜单名
DefaultGroupName=ISsample
;是否打开->可选安装开始菜单项
;AllowNoIcons=yes
;安装协议
;LicenseFile=C:\Example\原始文件\agreement.txt
;安装前查看的文本文件
;InfoBeforeFile=C:\Example\原始文件\Setup_New.txt
;安装后查看文本文件
;InfoAfterFile=C:\Example\原始文件\Setup_Old.txt
;输出文件夹
OutputDir=C:\Example\InnoSetup\out
;输出文件名
OutputBaseFilename=setup
;安装图标
SetupIconFile=C:\Example\原始文件\title.ico
;安装需要输入密码
;Password=123
;Encryption=yes
;压缩相关
Compression=lzma
SolidCompression=yes
;可以让用户忽略选择语言相关
ShowLanguageDialog = yes
;备注版本信息
VersionInfoCompany=HTTP://www.Hkiss.COM
VersionInfoDescription=ISsample 汉化增强版
VersionInfoVersion=1.0.0.0
VersionInfoCopyright=Copyright (C) 2007-2008 Hkiss
;制作选择语言
[Languages]
Name: "chs"; MessagesFile: "compiler:Default.isl" ;LicenSeFile :"C:\Example\原始文件\chs\agreement.txt"
Name: "en"; MessagesFile: "compiler:Languages\English.isl";LicenSeFile :"C:\Example\原始文件\en\agreement.txt"
;用户定制任务
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "Tasks_1" ; Description:"用户自定义任务1"; Flags: unchecked
Name: "Tasks_2" ; Description:"用户自定义任务2"; Flags: unchecked
;选择了组件才会出现的定制任务
Name: "Tasks_3" ; Description:"用户自定义任务3";Components: c1 ; Flags: unchecked
;文件安装
[Files]
;多语言安装环境设置 公共参数Languages 来设置
Source: "C:\Example\原始文件\enfile.txt"; DestDir: "{app}"; Languages: en ; Flags: ignoreversion
Source: "C:\Example\原始文件\chsfile.txt"; DestDir: "{app}"; Languages: chs ; Flags: ignoreversion
;用户自定义任务 Tasks
Source: "C:\Example\原始文件\Tasks\tasks_1.txt"; DestDir: "{app}\Tasks"; Flags: ignoreversion ;Tasks : Tasks_1
Source: "C:\Example\原始文件\Tasks\tasks_2.txt"; DestDir: "{app}\Tasks"; Flags: ignoreversion ;Tasks :Tasks_2
Source: "C:\Example\原始文件\Tasks\tasks_Components.txt"; DestDir: "{app}\Tasks"; Flags: ignoreversion ;Tasks :Tasks_2
;用户定义组件安装
Source: "C:\Example\原始文件\Components\Components_1.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a1;
Source: "C:\Example\原始文件\Components\Components_2.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a2;
Source: "C:\Example\原始文件\Components\Components_3.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a3;
Source: "C:\Example\原始文件\Components\Components_4.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a1 a2 a3;
;用户注册自定义Dll文件 regserver 注册 noregerror 不显示错误信息
Source: "C:\Example\原始文件\jmail.dll"; DestDir: "{app}"; Flags: ignoreversion regserver
;添加自述文件
Source: "C:\Example\原始文件\ISsample.txt"; DestDir: "{app}"; Flags: ignoreversion
;添加一个文件到缓存文件夹{Tmp} deleteafterinstall 安装后删除
Source: "C:\Example\原始文件\test.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall
Source: "C:\Example\原始文件\ISsample.chm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Example\原始文件\ISsample.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Example\原始文件\ISsample.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Example\原始文件\ISsample.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Example\原始文件\ISsample.rar"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Example\原始文件\ISsample_sys.dll"; DestDir: "{win}\System32"; Flags: ignoreversion
Source: "C:\Example\原始文件\log\*"; DestDir: "{app}\log"; Flags: ignoreversion recursesubdirs createallsubdirs
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”
;安装类型设置
[Types]
Name: Full ;Description:"完全安装"; Flags: iscustom
Name: Compact ;Description:"简洁安装";
Name: Custom; Description:"自定义安装";
;组件安装
[Components]
Name: c1; Description: "自定义任务3" ; Types: Full
Name: a1; Description: "安装Components_1"; Types: Full Compact Custom ;
Name: a2; Description: "安装Components_2"; Types : Full Compact
Name: a3; Description: "安装Components_3"; Types : Full
;开始菜单,桌面快捷方式
[Icons]
Name: "{group}\ISsample"; Filename: "{app}\ISsample.exe"
Name: "{group}\{cm:ProgramOnTheWeb,ISsample}"; Filename: "http://zwkufo.blog.163.com"
Name: "{group}\{cm:UninstallProgram,ISsample}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\ISsample"; Filename: "{app}\ISsample.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\ISsample"; Filename: "{app}\ISsample.exe"; Tasks: quicklaunchicon
;添加一个帮助文挡
Name: {group}\ISsample 1.0.0.0 帮助文档;Filename: {app}\ISsample.chm
;用来在程序安装完成后 在安装程序显示最终对话框之前执行程序 常用与运行主程序 显示自述文件 删除临时文件
[Run]
Filename: "{app}\ISsample.exe"; Description: "{cm:LaunchProgram,ISsample}"; Flags: nowait postinstall skipifsilent
Filename: "{app}\ISsample.txt"; Description: "查看显示自述文件"; Flags: postinstall skipifsilent shellexec
;更改显示在程序中显示的消息文本
[Messages]
BeveledLabel=HKiss科技
;卸载对话框说明
ConfirmUninstall=您真的想要从电脑中卸载ISsample吗?%n%n按 [是] 则完全删除 %1 以及它的所有组件;%n按 [否]则让软件继续留在您的电脑上.
;定义解压说明
;StatusExtractFiles=解压并复制主程序文件及相关库文件...
;用于在用户系统中创建,修改或删除ini文件健值
[INI]
Filename: "{app}\cfg.ini"; Section: "Startup Options"; Flags: uninsdeletesection
Filename: "{app}\cfg.ini"; Section: "Startup Options"; Key: "server ip"; String: "127.0.0.1"
Filename: "{app}\cfg.ini"; Section: "Startup Options"; Key: "server port"; String: "8080"
;用于在用户系统中创建,修改或删除注册表健值
[Registry]
Root: HKLM ;SubKey:"Software\ISsample";ValueType:dword;ValueName:config;ValueData:10 ;Flags:uninsdeletevalue
;在执行脚本
[code]
//全局变量
var MyProgChecked: Boolean;
//判断程序是否存在
//初始华程序事件
function InitializeSetup(): boolean;
var Isbl: boolean; //声明变量
var Isstr: string;
begin //开始
Isbl := true; //变量赋值
Isstr := "欢迎";
if RegValueExists(HKEY_LOCAL_MACHINE, "SOFTWARE\ISsample", "config") then
begin
MsgBox("已安装过,请先卸载在安装",mbConfirmation, MB_OK);
isbl := false;
end else
begin
//MsgBox("无值",mbConfirmation, MB_OK);
isbl := true;
end;
//下面是个麻烦的 条件语句 end else 注意
//if MsgBox(Isstr, mbConfirmation, MB_OKCANCEL) = IDOK then
//begin
// isbl := true;
// MsgBox("执行了", mbConfirmation, MB_OK);
//end else
//begin
// isbl := false;
//MsgBox("执行了", mbConfirmation, MB_OK);
//end;
Result := Isbl;
end; //结束
procedure CurStepChanged(CurStep: TSetupStep);
var Isstr :string;
begin
if CurStep=ssInstall then //实际安装前调用
begin
//MsgBox("CurStepChanged:实际安装前调用", mbConfirmation, MB_OKCANCEL); //安装完成后调用
end;
if CurStep=ssPostInstall then
begin
Isstr := ExpandConstant("{tmp}\tmp.rar");
// if FileExists(Isstr) then
// begin
// MsgBox("文件存在",mbConfirmation, MB_OK);
// end else
// begin
// MsgBox("文件不存在",mbConfirmation, MB_OK);
// end;
// MsgBox("CurStepChanged:实际安装后调用", mbConfirmation, MB_OKCANCEL);
end;
end;
//下一步 按钮按钮 事件
function NextButtonClick(CurPageID: Integer): Boolean;
var ResultCode: Integer;
var IsSetup : Boolean;
begin
IsSetup := true ;
case CurPageID of
wpSelectDir:
MsgBox("NextButtonClick:" #13#13 "You selected: """ + WizardDirValue + """.", mbInformation, MB_OK); //WizardDirValue路径
wpSelectProgramGroup:
MsgBox("NextButtonClick:" #13#13 "You selected: """ + WizardGroupValue + """.", mbInformation, MB_OK);//开始菜单名
wpReady:
begin
if not RegValueExists(HKEY_LOCAL_MACHINE, "SOFTWARE\Test", "config") then begin
if MsgBox("程序执行需要Test.ext,是否安装!", mbConfirmation, MB_YESNO) = idYes then begin
ExtractTemporaryFile("test.exe");
if not Exec(ExpandConstant("{tmp}\test.exe"), "", "", SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then
MsgBox("Test.exe出错:" #13#13 " " + SysErrorMessage(ResultCode) + ".", mbError, MB_OK);
end else begin
IsSetup := false ;
end ;
BringToFrontAndRestore();
end;
end;
end;
Result := IsSetup;
end;
迅雷安装脚本
[Setup]
AppName=迅雷5
AppVerName=迅雷 5.7.2.371 DDR1.5 去广告版
DefaultDirName={pf}\Thunder\
DefaultGroupName=迅雷5
OutputbaseFilename=Thunder-ddr5.7.2.371Setup
Compression=lzma
SolidCompression=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
AppMutex=thunder5_app_mutex
[Types]
Name: "default"; Description: "默认安装"
Name: "custom"; Description: "自定义安装"; Flags: iscustom
Name: "full"; Description: "完全安装"
[Components]
Name: "main"; Description: "迅雷5"; Types:default custom full; Flags: fixed
Name: "Plugins"; Description: "其他插件"; Types: full
Name: "Plugins\kankan"; Description: "迅雷看看"; Types: full
Name: "Plugins\gougou"; Description: "狗狗搜索排行"; Types: full
Name: "Plugins\tingting"; Description: "迅雷听听1.2"; Types: full
[Tasks]
Name: desktopicon; Description: "创建桌面快捷方式"; Flags: checkedonce
Name: associate; Description: "在开始菜单创建程序组";Flags: checkedonce
[Files]
;主文件安装
Source: "pureThunder\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs ignoreversion
;配置文件安装
Source: "Profiles\*"; DestDir: "{app}\Profiles"; Flags:uninsneveruninstall onlyifdoesntexist
;注册文件安装
Source: "comfile\*"; DestDir: "{app}\ComDlls"; Flags:ignoreversion regserver restartreplace uninsrestartdelete
;迅雷看看安装
Source: "KanKan\files\*"; DestDir: "{app}\Components\KanKan"; Components: Plugins\kankan; Flags:ignoreversion
Source: "KanKan\regdll\*"; DestDir: "{app}\Components\KanKan"; Components: Plugins\kankan; Flags:ignoreversion regserver restartreplace uninsrestartdelete
;狗狗搜索安装
Source: "plugins\GouGouTop\*"; DestDir: "{app}\plugins\GouGouTop";Components: Plugins\gougou; Flags: ignoreversion
;听听安装
Source: "plugins\TingTing\*"; DestDir: "{app}\plugins\TingTing";Components: Plugins\tingting; Flags: ignoreversion
;复制vc6运行库
Source: "msvcp60.dll"; DestDir:"{sys}\"; Flags: onlyifdoesntexist uninsneveruninstall
[INI]
;狗狗搜索插件信息写入
Filename: "{app}\Program\addins.ini"; Section: "{{1FC7CAC6-2DA8-4cb0-B440-CCC0CA}"; Key: "Name"; String: "狗狗搜索排行";Components: Plugins\gougou
Filename: "{app}\Program\addins.ini"; Section: "{{1FC7CAC6-2DA8-4cb0-B440-CCC0CA}"; Key: "File"; String: "..\Plugins\GouGouTop\GouGouTop.dll" ;Components: Plugins\gougou
Filename: "{app}\Program\addins.ini"; Section: "{{1FC7CAC6-2DA8-4cb0-B440-CCC0CA}"; Key: "Enable"; String: "1" ;Components: Plugins\gougou
;迅雷听听插件信息写入
Filename: "{app}\Program\addins.ini"; Section: "{{200A93B9-365D-4F4A-9C4F-57F645A7B9D2}"; Key: "Name"; String: "听听插件";Components: Plugins\tingting
Filename: "{app}\Program\addins.ini"; Section: "{{200A93B9-365D-4F4A-9C4F-57F645A7B9D2}"; Key: "File"; String: "..\Plugins\TingTing\TingTing.dll" ;Components: Plugins\tingting
Filename: "{app}\Program\addins.ini"; Section: "{{200A93B9-365D-4F4A-9C4F-57F645A7B9D2}"; Key: "Enable"; String: "1" ;Components: Plugins\tingting
[Registry]
Root: HKLM; Subkey: "SOFTWARE\Thunder Network\ThunderOem\thunder_backwnd"; ValueName: "Path"; ValueType: String; ValueData: "{app}\Thunder.exe"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Thunder Network\ThunderOem\thunder_backwnd"; ValueName: "Version"; ValueType: String; ValueData: "5.7.2.371"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Microsoft\Internet Explorer\MenuExt\使用迅雷下载全部链接"; ValueType: String; ValueData: "{app}\Program\GetAllUrl.htm"; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Internet Explorer\MenuExt\使用迅雷下载全部链接"; ValueName: "Contexts"; ValueType: dword; ValueData: 243; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Internet Explorer\MenuExt\使用迅雷下载"; ValueType: String; ValueData: "{app}\Program\GetUrl.htm"; Flags: uninsdeletevalue
Root: HKCU; Subkey: "Software\Microsoft\Internet Explorer\MenuExt\使用迅雷下载"; ValueName: "Contexts"; ValueType: dword; ValueData: 34; Flags: uninsdeletevalue
[Run]
Filename: "{app}\DDR迅雷设置中心.exe"; Description: "运行迅雷设置中心";
;Filename: "{app}\Program\SetupHelper.exe"; Parameters: "/register_plugins";
;Filename: "{app}\Program\SetupHelper.exe"; Parameters: "/open_firewall";
;Filename: "{app}\Program\SetupHelper.exe"; Parameters: "/for_all_users";
[Icons]
Name: "{commondesktop}\迅雷";Filename: "{app}\Thunder.exe";Tasks:desktopicon
Name: "{group}\启动迅雷"; Filename: "{app}\Thunder.exe";Tasks:associate
Name: "{group}\DDR迅雷设置中心"; Filename: "{app}\DDR迅雷设置中心.exe";Tasks:associate
Name: "{group}\卸载迅雷"; Filename: "{uninstallexe}";Tasks:associate
;[UninstallRun]
;[UninstallDelete]
;Type: filesandordirs ; Name: "{app}";
[Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
DeleteProfile: string;
DeleteConfirm: Boolean;
begin
case CurUninstallStep of
//卸载后的收尾工作
usPostUninstall:
begin
// 确认是否删除整个目录
DeleteProfile := ExpandConstant(‘{app}‘);
DeleteConfirm :=MsgBox(‘是否保留用户配置文件与历史记录?‘ mbConfirmation MB_YESNO) = idYes;
if DeleteConfirm=False then
DelTree(DeleteProfile True True True);
if DeleteConfirm=True then
DelTree(DeleteProfile ‘\Program‘TrueTrueTrue);
end;
end;
end;
示例:
Source: "OZHANDIN.TTF"; DestDir: "{fonts}"; FontInstall: "Oz Handicraft BT"; Flags: onlyifdoesntexist uninsneveruninstall
Flags
描述:
这个参数是额外选项设置。多个选项可以使用空格隔开。支持下面的选项:
allowunsafefiles
禁止编译器自动检查不安全文件。强烈推荐你不要使用这个标记,除非你有绝对的把握。
comparetimestamp
(不推荐,看下面)
如果安装的文件已经在用户系统中存在,以及至少下列条件中的一个为 true,则告诉安装程序进行时间戳比较:
1. 现有的文件和安装的文件都没有版本信息。
2. 条目中同时使用了 ignoreversion 标记。
3. 未使用 replacesameversion 标记,并且现有的文件和要安装的文件版本号相同 (用文件的版本信息决定)。
如果现有的文件的时间戳比安装的文件老,现有的文件将被替换。否则,将不替换。
如果还没有其它方法,不推荐使用这个标记,因为其中有一个内部问题: NTFS 分区在 UTC (不同于 FAT 分区) 贮存时间戳,因本地时间戳原因 -- Inno Setup 按默认工作 -- 只要用户改变他们系统的时间区域,或转到或使夏令时生效。这可能会导致用户不希望替换的文件被替换,或用户希望替换的文件未被替换。
confirmoverwrite
替换现有的文件前总是询问用户确认。
createallsubdirs
按默认,当编译器包含子目录搜索源文件名/通配符时,将跳过空目录。这个标记会使这些目录在安装时被创建 (就象在 [Dirs] 段创建一样)。
必须和 recursesubdirs 组合使用。
deleteafterinstall
告诉安装程序象平常一样安装文件,但一旦安装完成 (或中断) 则删除。这在提取脚本中的 [Run] 段指定要执行的临时程序时有用。
这个标记不会导致安装期间未被替换的现有文件被删除。
这个标记不能与 isreadme,regserver,regtypelib,restartreplace,sharedfile 或 uninsneveruninstall 标记组合使用。
dontcopy
不复制文件到用户系统。如果文件是通过 [code] 专门处理,这个标记是有用的。
dontverifychecksum
防止安装程序在提取后校验文件。在你想修改的已编译到安装程序中的文件使用这个标记。
必须与 nocompression 组合。
external
这个标记告诉 Inno Setup 不要编译 Source 参数指定的文件到安装程序文件中,改为从分布的媒介或用户系统中复制。查阅 Source 参数的描述获取更多信息。
fontisnttruetype
如果用 FontInstall 参数的条目安装一个非 TrueType 字体,则使用这个标记。
ignoreversion
不比较版本信息;不考虑版本号替换现有的文件。
这个标记应该用于你私人的程序中,不要用于共享的系统文件。
isreadme
表示文件为“自述”文件。安装程序中只有一个文件可以使用这个标记。当文件使用这个标记时,在安装完成后询问用户是否想查看自述文件。如果选择是,安装程序将使用与这个文件类型默认的程序打开该文件。因上,自述文件应该总是使用象 .txt,.wri 或 .doc 扩展名。
请注意,如果安装程序重新启动了用户的电脑 (安装了一个带 restartreplace 标记的文件或 [Setup] 段的 AlwaysRestart 指示设为 yes),用户将没有查看自述文件的选项。
nocompression
预防编译器尝试压缩文件。在你知道压缩没有什么好处的文件 (例如 JPEG 图像) 上使用这个标记,可以加速编译进度,并可以使生成的安装程序更小。
noencryption
防止文件被加密贮存。如果你已经使用了 encryption (用 [Setup] 段指示 Encryption),但想让它可以在用户输入正确的密码之前用 [code] 段支持函数 ExtractTemporaryFile 提取该文件,则使用这个标记。
noregerror
当与 regserver 或 regtypelib 标记中的任一一个组合使用时,安装程序将在注册失败时不显示任何错误消息。
onlyifdestfileexists
仅在用户系统中已经存在相同名字的文件时安装文件。如果你的安装程序是已经安装的软件的补丁,并且你希望安装用户没有安装的文件时,这个标记可能有用。
onlyifdoesntexist
仅在用户系统中不存在时安装文件。
overwritereadonly
总是覆盖只读文件。如果不带这个标记,安装程序在遇到只读文件时询问用户是否覆盖。
promptifolder
按默认,当安装的文件比现有的文件是个较老的版本 (或当使用 comparetimestamp 时发现较早的时间戳)安装程序将不替换现有的文件 (查阅这个主题下面的备注段获取详细资料)。当使用这个标记时,安装程序将询问用户是否替换文件,默认的回答是保留现有的文件。
recursesubdirs
告诉编译器或安装程序同时也搜索来源目录下子目录中的源文件名/通配符。
regserver
注册 OLE 服务 (a.k.a. ActiveX 控件)。使用这个标记,安装程序将查找和执行 DLL/OCX 的 DllRegisterServer 输出。卸载程序调用 DllUnregisterServer。当用于与共享文件结合时,DLL/OCX 只将在涉及的计数为零时取消注册。
看这个主题下面的备注段获取更多信息。
regtypelib
注册类型库 (.tlb)。卸载程序将撤销类型库注册 (除非指定了 uninsneveruninstall 标记)。与 regserver 标记一样,当用于与共享文件结合时,文件只将在涉及的计数为零时取消注册。
看这个主题下面的备注段获取更多信息。
replacesameversion
当使用这个标记,并且文件已经在用户系统中存在,以及它与要安装的文件版本号相同,安装程序将比较文件,如果它们的内部不同,则替换现有的文件。
默认动作 (例如,当这个标记未使用) 是不替换版本号相同的已有的文件。
restartreplace
这个标记通常用于替换系统核心文件。如果文件预先已经存在,且发现被锁定,以至于安装程序不能替换,安装程序将注册该文件 (用 WININIT.INI 可通过使用 MoveFileEx,分别用于 Windows 和 Windows NT) 在下次系统重新启动时替换。当出现这种情况时,将在安装完成时提示用户重新启动电脑。
为保持与 Windows 95/98/Me 兼容,不要在这个条目中使用长文件名,只支持“8.3”文件名。(Windows NT 平台没有这个限制。)
重要提示: 这个 restartreplace 标记只能在用户有管理员权限时才能在 Windows NT 平台成功替换使用中的文件。如果用户没有管理员权限,将显示下列消息: “RestartReplace 失败: MoveFileEx 失败; 代码 5。”因此,当使用 restartreplace 时,强烈推荐你在 [Setup] 段设置“PrivilegesRequired=admin”,让你的安装程序必需有管理员权限才能安装。
sharedfile
使用 Windows 共享文件计数功能 (位于注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs)。这个功能是用于让文件在应用程序之间共享使用,不要不注意将它删除了。每次安装该文件,涉及的文件计数将增加,当使用这个文件的应用程序卸载,涉及的文件计数减少。如果计数减少到零,该文件被删除 (会通知用户确认,除非同时指定了 uninsnosharedfileprompt 标记)。
使用这个标记的大多数文件被安装到 Windows 系统目录,包含 .OCX、.BPL 和 .DPL 文件。
skipifsourcedoesntexist
这个标记告诉编译器 -- 或安装程序,如果同时使用了 external 标记 -- 如果源文件不存在,只是跳过该条目,而不是显示一个错误消息。
sortfilesbyextension
这个标记告诉编译器在按路径名排序前,先按文件扩展名排序压缩找到的文件。如果同时使用 SolidCompression,可以进一步减小安装程序大小。
touch
这个标记命令安装程序设置安装的文件的时间/日期戳为 [Setup] 段 TouchDate 和 TouchTime 指示指定的值。
如果与 external 标记同时使用,这个标记无效。
uninsnosharedfileprompt
当卸载共享文件时,如果共享计数为零,不询问用户自动删除文件。必须与 sharedfile 标记组合使用才有效。
uninsremovereadonly
当卸载文件时,在删除文件前选删除它的只读属性。
uninsrestartdelete
当使用这个标记、并且该文件在卸载时正在被使用,卸载将文件放置到删除队列,直到系统重新启动经。卸载结束时会询问用户是否重新启动。这个标记通常在卸载不能用程序停止的外壳扩展的文件时有用。注意,要使用这个标记生效,在 Windows NT/2000/XP 中,必需要有管理员权限。
uninsneveruninstall
不卸载这个文件。这个标记在安装在任何情况下不删除的公共共享文件时有用,象 MFC DLL。
示例:
Flags: isreadme 组件和任务参数
公共参数
备注
如果文件已经在用户系统中存在,按默认,将根据下列规则替换:
1. 如果现有的文件版本老于安装的文件版本 (通过文件的版本信息确定),现有的文件将被替换。
2. 如果现有的文件版本与安装的文件版本相同,不替换现有的文件,除非使用了 replacesameversion 标记,且两个文件的内容不一致。
3. 如果现有的文件版本新于安装的文件版本,或如果现有的文件有版本信息,但安装的文件没有,将不替换现有的文件。
4. 如果现有的文件没有版本信息,将被替换。
某些标记象 onlyifdoesntexist,ignoreversion 和 promptifolder 会更改上述的规则。
如果未使用 restartreplace 标记,并且因为其它进程正在使用,安装程序不能替换现有的文件,它将继续进行四次文件替换尝试,每次尝试延时一秒。如果所有尝试失败,将显示一个错误消息。
安装程序用 regserver 或 regtypelib 标记注册所有文件为安装的最后一个步骤。但是,如果 [Setup] 段指示 AlwaysRestart 设为 yes,或如果有用 restartreplace 标记的文件,所有文件在下次重新启动后注册 (通过在 Windows RunOnce 注册表键中创建一个项目)。
当卸载带扩展名 .HLP (Windows 帮助文件) 文件后,相应的 .GID 和 .FTS 文件也同样将自动卸载。
[Icons] 段
这个可选段定义所有创建在开始菜单和/或其它位置 (比如桌面) 的快捷方式。
这里是 [Icons] 段的例子:
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MYPROG.EXE"; WorkingDir: "{app}"
Name: "{group}\Uninstall My Program"; Filename: "{uninstallexe}"
下列是所支持的参数列表:
Name (必需)
描述:
要创建的快捷方式的名字和位置。在这个参数中可以使用任何外壳文件夹常量或目录常量。
请注意,快捷方式是贮存为文字文件,因此在普通文件名中不能使用的字符不这里也同样不能使用。同样,因为不可能有两个相同名字的文件一样,也不可能有两个相同名字的快捷方式。
示例:
Name: "{group}\My Program"
Name: "{group}\Subfolder\My Program"
Name: "{userdesktop}\My Program"
Name: "{commonprograms}\My Program"
Name: "{commonstartup}\My Program"
Filename (必需)
描述:
快捷方式的命令行文件名,通常用一个目录常量开头。
示例:
Filename: "{app}\MYPROG.EXE"
Filename: "{uninstallexe}"
Parameters
描述:
快捷方式的可选命令行参数,可以包含常量。
示例:
Parameters: "/play filename.mid"
WorkingDir
描述:
快捷方式的工作 (或启动) 目录,就是指示程序在哪个目录开始运行。如果这个参数未指定或是空白的,Windows 将使用一个默认路径,在 Windows 不同版本之间是不同的。这个参数可以包含常量。
示例:
WorkingDir: "{app}"
HotKey
描述:
快捷方式的热键 (或快捷键) 设置,就是可以用于启动程序的组合键。
注意: 如果你改变了快捷键并重新安装了应用程序,Windows 可以继续认可老的快捷键,直到你注销并返回或重新启动系统。
示例:
HotKey: "ctrl+alt+k"
Comment
描述:
指定快捷方式的注释 (或描述) 对象,在 Windows 2000,Me 及更高版本中可以用来弹出提示。早期版本的 Windows 被忽略注释。
示例:
Comment: "This is my program"
IconFilename
描述:
要显示的自定义图标文件名 (位于用户系统)。这可以是一个包含图标文件的可执行映像 (.exe, .dll)或一个 .ico 文件。如果这个参数未指定或空白,Windows 将使用文件的默认图标,这个参数可以包含常量。
示例:
IconFilename: "{app}\myicon.ico"
IconIndex
默认: 0
描述:
用 IconFilename 指定的文件中使用的以零为基点的图标索引。
如果 IconIndex 非零值,以及 IconFilename 未指定或空白,它将默认为 IconFilename 与 Filename 名相同。
示例:
IconIndex: 0
Flags
描述:
这个参数是额外选项设置。多个选项可以使用空格隔开。支持下面的选项:
closeonexit
当设置这个标记时,安装程序将设置快捷方式的“退出时关闭”属性。这个标记只在快捷方式指向 MS-DOS 应用程序时有效 (如果它是 .pif 扩展名)。如果没有这个标记也没有指定 dontcloseonexit 标记,安装程序将尝试改变“退出时关闭”属性。
createonlyiffileexists
当设置这个标记时,安装程序将只在用文件名参数指定的文件存在时尝试创建图标。
dontcloseonexit
等同于 closeonexit,除了它导致安装程序不选中“退出时关闭”属性。
foldershortcut
创建一个特殊的象“文件夹快捷方式”的快捷方式类型。一般来说,文件夹快捷方式出现在开始菜单中,单击该快捷方式会打开资源管理器窗口显示文件夹内容。与此相反,“文件夹快捷方式”将象菜单一样显示目标文件夹的内容,而不是单独打开一个窗口。
文件夹快捷方式只支持 Windows 2000、Me 和最高版本,一些早期版本的 Windows,安装程序在遇到这个标记时,将返回创建一个普通快捷方式。
当使用这个标记,文件夹名必须在文件名参数中指定。指定一个文件名字将导致毫无用处的快捷方式。
runmaximized
当设置这个标记时,安装程序设置图标的“运行”设置为“最大化”,使程序在启动后初始状态为最大化。
runminimized
当设置这个标记时,安装程序设置图标的“运行”设置为“最小化”,使程序在启动后初始状态为最小化。
uninsneveruninstall
通知卸载程序不删除图标。
useapppaths
当设置这个标记时,只在文件名参数中指定文件名 (无路径),安装程序将从“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths”注册表键获取路径名,并自动添加到文件名前面。
示例:
Flags: runminimized
[INI] 段
这是你希望安装程序在用户系统中设置 .INI 文件条目的可选段。
这里是 [INI] 段的例子:
[INI]
Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Flags: uninsdeletesection
Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"
下列是所支持的参数列表:
Filename (必需)
描述:
你希望安装程序修改的 .INI 文件的名字,可以包含常量。如果这个参数是空白的,它写入到系统的 Windows 目录中的 WIN.INI 中。
示例:
Filename: "{win}\MYPROG.INI"
Section (必需)
描述:
要创建的用于放置 INI 条目的区段名,可以包含常量。
示例:
Section: "Settings"
Key
描述:
要设置的键名,可以包含常量。如果这个参数未指定或是空白的,将不创建键。
示例:
Key: "Version"
String
描述:
分配给键的值,可以使用常量。如果这个参数未指定,将不创建键。
示例:
String: "1.0"
Flags
描述:
这个参数是额外选项设置。多个选项可以使用空格隔开。支持下面的选项:
createkeyifdoesntexist
仅在如果键名不存在时分配到键。
uninsdeleteentry
当程序卸载时删除条目。这可以写 uninsdeletesectionifempty 标记组合使用。
uninsdeletesection
当程序卸载时,删除条目所在的整个区段。这对于在 Windows 它自身包含的 INI 文件 (象一些 WIN.INI 中的区段) 中使用,这具有很大的危险性。你应该只在应用程序私有的文件中使用这个标记。
uninsdeletesectionifempty
等同于 uninsdeletesection,但只在没有键剩余的情况下删除段,它可以与 uninsdeleteentry 标记组合使用。
示例:
Flags: uninsdeleteentry
[Installdelete] 段
这个可选段格式与 [Uninstalldelete] 一样,除了它的条目处理在安装步骤之前。
[Languages] 段
Inno Setup 支持多语言安装。[Languages] 段用来定义安装程序中可使用的语言。
安装程序用下列顺序确定在消息中默认使用的语言:
1. 搜索 LanguageID 设置的语言 (通常指定在语言文件 .isl 的 [LangOptions] 段) 匹配首选语言标识和当前用户界面语言或本地 (根据 LanguageDetectionMethod) 子语言标识两者。
2. 如果未发现,只搜索匹配的首选语言标识。如果两个或多个可用文有相同的首选语言标识,它将使用在 [Languages] 段中列出的第一个。
3. 如果未发现,默认为指定在 [Languages] 段的第一个语言。
如果 [Setup] 段的 ShowLanguageDialog 指示设置为 yes (默认),将显示一个选择语言对话框,使用户有机会忽略语言安装选择。
ShowLanguageDialog 指示设置为 yes (默认),将显示一个选择语言对话框,使用户有机会忽略语言安装选择。
下面是 [Languages] 段的一个示例。它定义两个语言: 简体中文,根据标准的汉化版的 Default.isl 文件,以及英语,原版的语言文件,汉化版中已包括。
[Languages]
Name: "chs"; MessagesFile: "compiler:Default.isl"
Name: "en"; MessagesFile: "compiler:English.isl"
Name (必需)
描述:
语言的内部名字,你可以设置为你喜欢的任何东西。这可以用作 [LangOptions] 或 [Messages] 段条目的前缀,使这些条目只用一种语言。{language} 常量返回选定语言的内部名字。
示例:
Name: "en"
MessagesFile (必需)
描述:
指定要读取的默认消息的文件名。这个文件必须位于你的安装程序的来源目录,除非你指定了文件的完整路径或用“compiler:”作为前缀,在这种场合下它会在编译器目录下查找文件。
当指定多个文件时,它按指定的顺序读取,因此最后的消息文件将覆盖前面的所有文件。
查阅 [Messages] 段帮助主题获取 .isl 文件格式中的详细资料。
示例:
MessagesFile: "compiler:Dutch.isl"
MessagesFile: "compiler:Default.isl,compiler:MyMessages.isl"
LicenseFile
描述:
指定可选的许可协议文件名字,用 .txt 或 .rtf (富文本) 格式,它显示在用户选择程序的目标目录之前。在运行安装程序编译器时,这个文件必须位于你的安装程序的来源目录,除非你指定了文件的完整路径或用“compiler:”作为前缀,在这种场合下它会在编译器目录下查找文件。
示例:
LicenseFile: "license-Dutch.txt"
InfoBeforeFile
描述:
指定可选的“自述”文件名字,用 .txt 或 .rtf (富文本) 格式,它显示在用户选择程序的目标目录之前。在运行安装程序编译器时,这个文件必须位于你的安装程序的来源目录,除非你指定了文件的完整路径或用“compiler:”作为前缀,在这种场合下它会在编译器目录下查找文件。
示例:
InfoBeforeFile: "infobefore-Dutch.txt"
InfoAfterFile
描述:
指定可选的“自述”文件名字,用 .txt 或 .rtf (富文本) 格式,它显示在完成安装之后。在运行安装程序编译器时,这个文件必须位于你的安装程序的来源目录,除非你指定了文件的完整路径或用“compiler:”作为前缀,在这种场合下它会在编译器目录下查找文件。
这与 isreadme 文件不同,它里面的文字显示这一个向导页中,而不是一个单独的记事本窗口。
示例:
InfoAfterFile: "infoafter-Dutch.txt"
[Messages] 段
[Messages] 段用于定义显示在安装程序和卸载程序中的消息。通常,你不需要在你的脚本中创建 [Messages] 段,按默认,所有的消息在 Inno Setup 的 Default.isl 文件 (或在 [Languages] 段指定的条目) 中已经包含。
但是,一些特殊的消息可以用创建在脚本文件 [Messages] 段的内容覆盖。要覆盖消息,首先你需要知道你想更的消息 ID。这可以通过搜索 Default.isl 很容易地找到。例如,你想改变向导页“&Next >”按钮为“前进(&F) >”,此消息的 ID 是“ButtonNext”,所以你只要在 [Messages] 段写入下面的内容:
[Messages]
ButtonNext=前进(&F) >
一些消息包含变量,象 %1 和 %2。你可以重新排列变量顺序 (例如将 %2 移到 %1 之前),也可以在需要的情况下重复使用同一变量 (例如“%1 ... %1 %2”)。在带变量的消息中,使用两个连续的“%”字符,表示要置入单个“%”。“%n”表示换行符。
如果你想翻译所有 Inno Setup 的文本其它语言,而不是修改 Default.isl 或覆盖在你创建的所有脚本中的每个消息,将 Default.isl 复制一份,用其它名字象 MyTranslation.isl 命名。在你想使用 MyTranslation.isl 的安装程序中,创建一个 [Languages] 段 指向该文件。
在一些场合中,这里有多个 [Languages] 段条目,在你的脚本中指定一个 [Messages] 段条目 (与 .isl 文件中指定的条目不同) 将按默认不考虑所有语言消息。要应用一个 [Messages] 段条目到只使用于一种语言,在语言的内部名字前加到前缀并跟随一个点。例如:
en.ButtonNext=前进(&F) >
特殊用途标识
BeveledLabel 消息的特殊用途是可以用于指定显示在向导窗口和卸载程序窗口左下角的文本行,下面是一个示例:
[Messages]
BeveledLabel=Inno Setup
[CustomMessages] 段
[CustomMessages] 段用于定义 {cm:...} 常量的自定义消息值。查阅常量帮助文档内容获取更多信息。
从 [CustomMessages] 段使用 {cm:...} 常量获取的带描述的任务示例:
[CustomMessages]
createDesktopIcon=创建桌面快捷方式(&D)
[Tasks]
Name: desktopicon; Description: "{cm:createDesktopIcon}"
消息可以获取从 %1 到 %9 的声明。你可以重新排列它们的顺序 (例如,将 %2 移到 %1 之前),也可以在需要时重复声明 (例如“%1 ... %1 %2”)。在带声明的消息中,使用两个连续的“%”字符表示嵌入单个“%”。“%n”创建一个换行符。
在一些多个 [Languages] 段条目的场合下,在你的脚本中指定一个 [CustomMessages] 段条目 (对于 .isl 文件) 将按默认覆盖所有语言的消息。要只在一种语言中使用 [CustomMessages] 段条目,用语言的内部名字作为前缀,然后跟随一个句点。例如:
nl.createDesktopIcon=Maak een snelkoppeling op het &bureaublad
通常所有有下列自定义消息定义和每种语言的翻译已经包含在各自的语言 .isl 文件中 (以简体中文语言为例):
NameAndVersion=%1 版本 %2
AdditionalIcons=附加快捷方式:
createDesktopIcon=创建桌面快捷方式(&D)
createQuickLaunchIcon=创建快速运行栏快捷方式(&Q)
ProgramOnTheWeb=%1 网站
UninstallProgram=卸载 %1
LaunchProgram=运行 %1
AssocFileExtension=将 %2 文件扩展名与 %1 建立关联(&A)
AssocingFileExtension=正在将 %2 文件扩展名与 %1 建立关联...
你可以在脚一中使用这些预定的自定义消息。下列是在 UninstallProgram 中使用的示例:
[Icons]
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
[LangOptions] 段
[LangOptions] 段用于定义特殊语言设置,象字体一样,被安装程序和卸载程序使用。通常,你不需要在你的脚本中创建 [LangOptions] 按默认,所有的特殊语言设置在 Inno Setup 的 Default.isl 文件 (或在 [Languages] 段指定的条目) 中已经包含。
下面是 [LangOptions] 段的一个例子。(下面列出的设置是默认值。)
[LangOptions]
LanguageName=English
LanguageID=$0409
LanguageCodePage=0
DialogFontName=
DialogFontSize=8
WelcomeFontName=Verdana
WelcomeFontSize=12
TitleFontName=Arial
TitleFontSize=29
CopyrightFontName=Arial
CopyrightFontSize=8
LanguageName 是语言的名字。它显示在多语言安装程序中的选择语言对话框可用语言列表中。它以 Unicode 字符形式 (在 NT 平台也是这样显示) 贮存在内部。要嵌入 Unicode 字符,使用“<nnnn>”,这里的“nnnn”是 4 位数的十六进制 Unicode 字符集。你可以在 Windows 2000 及更高版本中的附件中用字符映射表查找字符的 Unicode 字符集。
LanguageID 是语言的数字化“语言标识”。查阅 http://msdn.microsoft.com/library/en-us/intl/nls_238z.asp 获取有效的语言标识列表。这是用来自动侦测默认使用的语言,请确保它格式使用正确,总是用一个“$”符号作为开头,因为语言标识是十六进制格式。
LanguageCodePage 用来指定显示语言所需要的“代码页”。当在多语言安装的选择语言对话框中加上可用语言列表时,它的 LanguageCodePage 值与系统代码页进行比较以确定应该列出哪些语言。只有那些 LanguageCodePage 的值与系统代码页匹配的语言才能显示。目的是不显示在用户系统中不能正确显示的语言。例如,俄语文字不能在除代码页为 1251 的系统中正确显示,因此如果系统运行在其它代码页中,俄语没有必要列出。
如果 LanguageCodePage 设为 0,该语言将总是在列表中列出,且不考虑系统的代码页。它可以判断在包含纯 ASCII 的语言中使用 0。例如象 English,因为 ASCII 同样可以在所有代码页中使用。
DialogFontName 和 DialogFontSize 指定在对话框中使用的字体名和大小 (磅)。如果指定的字体名在用户系统中不存在,或是一个空字串,将用 8 磅大小的 Microsoft Sans Serif 或 MS Sans Serif 替换。
WelcomeFontName 和 WelcomeFontSize 指定在欢迎向导页和安装完成向导页中的字体名和大小 (磅)。如果指定的字体名在用户系统中不存在,或是一个空的字符,将用 12 磅大小的 Microsoft Sans Serif 或 MS Sans Serif 替换。
TitleFontName 和 TitleFontSize 指定在背景窗口顶部 (仅在 indowVisible=yes 时可见) 使用的字体名和大小 (磅)。如果指定的字体名在用户系统中不存在,将用 29 磅的 Arial 代替。如果指定的字体名是空的,将用 29 磅的 Microsoft Sans Serif 或 MS Sans Serif 代替。
CopyrightFontName 和 CopyrightFontSize 指定在背景窗口中 AppCopyright 消息 (仅在 indowVisible=yes 时可见) 使用的字体名和大小 (磅)。如果指定的字体名在用户系统中不存在,将用 8 磅的 Arial 代替。如果指定的字体名是空的,将用 8 磅的 Microsoft Sans Serif 或 MS Sans Serif 代替。
在有多个 [Languages] 段条目的情况下,在脚本中指定一个 [LangOptions] 段指示 (不同于 an .isl 文件) 将按默认不覆盖所有语言指示。要应用 [LangOptions] 段指示到其中一种语言,用语言的内部名字跟随一个点作为前缀。例如:
en.LanguageName=English
[Registry] 段
这个可选段用来定义一些你想用安装程序在用户系统中创建、修改或删除的注册表键/值。
按默认,用安装程序创建的注册表键和值在卸载时不删除。如果你想让卸载程序删除键或值,你必须包含下面 uninsdelete* 标记中的一个。
下面是 [Registry] 段的一个示例。
[Registry]
Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\My Company\My Program"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"
下列是所支持的参数列表:
Root (必需)
描述:
根键。必须是下列中的一个:
HKCR (HKEY_CLASSES_ROOT)
HKCU (HKEY_CURRENT_USER)
HKLM (HKEY_LOCAL_MACHINE)
HKU (HKEY_USERS)
HKCC (HKEY_CURRENT_CONFIG)
示例:
Root: HKCU
Subkey (必需)
描述:
子键名,可以包含常量。
示例:
Subkey: "Software\My Company\My Program"
ValueType
描述:
值的数据类型。必须是下面中的一个:
none
string
expandsz
multisz
dword
binary
如果指定了 none (默认设置),安装程序将创建一个没有键值的键,在这种情况下,ValueName 和 ValueData 参数将被忽略。
如果指定了 string,安装程序将创建一个字符串 (REG_SZ) 值。
如果指定了 expandsz,安装程序将创建一个扩展字符串 (REG_EXPAND_SZ) 值。这种数据类型起初是用于 Windows NT/2000/XP 上,但是也支持 Windows 95/98/me。
如果指定了 multisz,安装程序将创建一个多行文本 (REG_MULTI_SZ) 值。
如果指定了 dword,安装程序将创建一个整数 (REG_DWORD) 值。
如果指定了 binary,安装程序将创建一个二进制 (REG_BINARY) 值。
示例:
ValueType: string
ValueName
描述:
要创建的值名,可以包含常量。如果是空白的,将写入到“默认”值。如果 ValueType 参数设置为 none,这个参数被忽略。
示例:
ValueName: "Version"
ValueData
描述:
值的数据。如果 ValueType 参数是 string,expandsz 或 ultisz,这是这一个可以包含常量的字符串。如果数据类型是 dword,这可以是一个十进制整数 (例如“123”),一个十六进制整数 (例如“$7B”) 或解析为整数的常量。如果数据类型是 binary,这可以是下列形式的十六进制字节序列: “00 ff 12 34”。如果数据类型是 none,将被忽略。
在 string,expandsz 或 multisz 类型值中,你可以在这个参数中使用一个特殊的常量调用 {olddata}。{olddata} 用先前的注册表值数据替换。如果你想添加一个字串到现有的值中,{olddata} 常量非常有用。例如,{olddata};{app}。如果该值不存在或现有的值不是一个字符串类型,{olddata} 常量将被删除。如果创建的值是一个 multisz 类型,但现有的值不是多行字符类型(例如,它是 REG_SZ 或 REG_EXPAND_SZ),{olddata} 常量也将被删除。反这亦然。
在 multisz 类型值中,你可以在参数中使用一个特殊常量调用 {break} 以插入换行符。
示例:
ValueData: "1.0"
Permissions
描述:
指定登录注册表键 ACL (访问控制列表) 的附加权限。如果你不熟悉 ACL 或你不知道为什么要列改,不推荐你使用这个参数,因为误用会导致重大的系统安全问题。
这个参数在用户必须运行 Windows 2000 或更高版本 (NT 4.0 由于 API 的问题不支持) 以及当前用户必须有更改注册表的权限时才有效。这些条件不满足时,不会显示错误消息,权限也不会被设置。
这个参数应该只使用于你的应用程序特有的注册表键中。不要更改顶级键象 HKEY_LOCAL_MACHINE\SOFTWARE 的 ACL,否则你自己打开了用户系统的安全漏洞。
指定的权限不考虑注册表键在安装前是否存在。如果 ValueType 是 none 和使用了 deletekey 或 deletevalue 标记时,不要设置这个权限。
这个参数可以包含象下列格式一样一个或多个空格分隔的值:
<用户或组标识>-<访问类型>
下面是 [Registry] 段支持的访问类型:
full
同意“完全控制”许可,与修改相同 (看下面),但又加上允许指定的用户/用户组获取注册表键所有权,并改变它的许可。通常保守的使用 modify 就足够了。
modify
同意“修改”许可,允许指定的用户/用户组读取、修改和删除注册表值或子键。
read
同意“读取和执行”许可,允许指定的用户/用户组读取注册表值或子键。
示例:
Permissions: authusers-modify
标签:work TBase 最大 两种 分享 磁盘空间 images ant and
原文地址:https://www.cnblogs.com/beilong/p/14753790.html