添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

; 使用预定义变量,便于维护
#define MyAppName "My Program"
#define MyAppVerName "My Program 1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"

[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}/{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile=D:/Program Files/Inno Setup 5/license.txt
OutputBaseFilename=setup
Compression=lzma
SolidCompression=true

[Languages]
Name: english; MessagesFile: compilerefault.isl

[CustomMessages]
; 使用自定义信息,便于维护或多国语言
cmSelectUser=Install for:
cmAllUsers=&All users
cmCurrentUserOnly=Current &user only

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}
; 把“选择安装给谁”选项作为附加任务来处理
; 脚本函数 ShowSelectUserTask 用于判断是否需要显示“选择安装”选项,比如 98 下不显示该选择,细节参见相应脚本函数
Name: forallusers; Description: {cm:cmAllUsers}; GroupDescription: {cm:cmSelectUser}; Flags: exclusive; Check: ShowSelectUserTask
Name: forcurrentuser; Description: {cm:cmCurrentUserOnly}; GroupDescription: {cm:cmSelectUser}; Flags: exclusive unchecked; Check: ShowSelectUserTask

[Files]
Source: D:/Program Files/Inno Setup 5/Examples/MyProg.exe; DestDir: {app}; Flags: ignoreversion
Source: D:/Program Files/Inno Setup 5/license.txt; DestDir: {app}; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Dirs]
; “选择安装给谁”选项的应用示例,脚本函数 CheckInstallFor 用于判断是选择了 安装给所有用户 还是 安装给当前用户,由此决定安装目标目录是 所有用户 还是 当前用户
Name: {commonappdata}/{#MyAppName}/Data; Check: CheckInstallFor('forallusers')
Name: {userappdata}/{#MyAppName}/Data; Check: CheckInstallFor('forcurrentuser')

[Icons]
Name: {group}/{#MyAppName}; Filename: {app}/{#MyAppExeName}
Name: {group}/{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}
; “选择安装给谁”选项的应用示例,请参考[Dirs]示例注释
Name: {commondesktop}/{#MyAppName}; Filename: {app}/{#MyAppExeName}; Tasks: desktopicon; Check: CheckInstallFor('forallusers')
Name: {userdesktop}/{#MyAppName}; Filename: {app}/{#MyAppExeName}; Tasks: desktopicon; Check: CheckInstallFor('forcurrentuser')
; 注意,我在测试过程中,发现{commonappdata}/Microsoft/Internet Explorer/Quick Launch/{#MyAppName}不起作用,因此快速启动快捷键只安装给当前用户
Name: {userappdata}/Microsoft/Internet Explorer/Quick Launch/{#MyAppName}; Filename: {app}/{#MyAppExeName}; Tasks: quicklaunchicon

[Registry]
; “选择安装给谁”选项的应用示例,请参考[Dirs]示例注释
; 这两行是卸载时候删除相应 注册 表内容
Root: HKLM; Subkey: Software/{#MyAppName}; Flags: uninsdeletekey dontcreatekey; ValueType: none; Check: CheckInstallFor('forallusers')
Root: HKCU; Subkey: Software/{#MyAppName}; Flags: uninsdeletekey dontcreatekey; ValueType: none; Check: CheckInstallFor('forcurrentuser')
; 这两行是安装时候在注册表内留下相应键值,来标识安装过程中的“选择安装”选项
Root: HKLM; Subkey: Software/{#MyAppName}; ValueType: string; ValueName: InstallFlag; ValueData: ForAllUser; Check: CheckInstallFor('forallusers')
Root: HKCU; Subkey: Software/{#MyAppName}; ValueType: string; ValueName: InstallFlag; ValueData: ForCurrentUser; Check: CheckInstallFor('forcurrentuser')

[UninstallDelete]
Name: {app}/MyProg.exe; Type: files
Name: {app}/license.txt; Type: files
Name: {app}; Type: dirifempty
; “选择安装给谁”选项的应用示例,请参考[Dirs]示例注释
Name: {commonappdata}/{#MyAppName}/Data; Type: dirifempty; Check: CheckInstallFor('forallusers')
Name: {userappdata}/{#MyAppName}/Data; Type: dirifempty; Check: CheckInstallFor('forcurrentuser')

[Run]
Filename: {app}/{#MyAppExeName}; Description: {cmaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent

[Code]

// 是否显示“选择安装给谁”选项,这里我认为显示的条件是:NT 平台,且为 Amdin 用户
function ShowSelectUserTask: Boolean;
begin
Result := UsingWinNT and IsAdminLoggedOn;
end;

// 判断“选择安装给谁”选项值
function CheckInstallFor(Task: string): Boolean;
begin
if UsingWinNT then
begin
Result := IsTaskSelected(Task);
if Result and (Task = 'forallusers') then
Result := ShowSelectUserTask;
end
else
Result := Task = 'forallusers';
end;

// 安装向导页面改变事件
procedure CurPageChanged(CurPageID: Integer);
var
I: Integer;
WinVer: TWindowsVersion;
begin
if (CurPageID = wpSelectTasks) then
begin // 当前页为 附加任务 选择页
GetWindowsVersionEx(WinVer);
if UsingWinNT and (not IsAdminLoggedOn or (WinVer.Major > 5)) then
begin // NT 平台,且 不是 Admin 用户 或 是 Vista 系统
for I := 0 to WizardForm.TasksList.Items.Count - 1 do
begin
if WizardForm.TasksList.ItemCaption = ExpandConstant('{cm:cmCurrentUserOnly}') then
WizardForm.TasksList.Checked := True; // 默认选择为 安装给当前用户
end;
end;
end;
end;

// 安装步骤改变事件
procedure CurStepChanged(CurStep: TSetupStep);
var
S: string;
ResultCode: Integer;
begin
if CurStep = ssInstall then
begin // 安装将要开始执行
// 这里可以根据自己需要,执行特定代码。我这里只是显示一下选项值
if IsTaskSelected('forallusers') then
MsgBox(ExpandConstant('{cm:cmSelectUser}') + ' ' + ExpandConstant('{cm:cmCurrentUserOnly}'), mbInformation, MB_OK)
else
MsgBox(ExpandConstant('{cm:cmSelectUser}') + ' ' + ExpandConstant('{cm:cmAllUsers}'), mbInformation, MB_OK);
end;
end;
代码:; Script generated by the Inno Setup Script Wizard.; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!; 使用预定义变量,便于维护#define MyAppName "My Program"#define MyAppVerName "My Progr
1、实现了静默 安装 系统服务的功能,可判断系统服务是否存在,不存在则 安装 ,存在则卸载后 安装 ;卸载时,卸载系统服务 2、可判断后台进程是否存在,存在就结束进程 3、无界面静默 安装 ,实现了双击立即自动 安装 的效果 注: 脚本 由本人自创,逻辑已经过项目验证, 安装 文件为改为自己的就行
非关联和免责声明 Portapps不与 Inno Setup :trade_mark:或其任何子公司或分支机构有任何关联,关联,授权,认可或以任何方式与之正式连接。 可以在上找到 Inno Setup :trade_mark:官方网站。 Inno Setup :trade_mark:名称以及相关名称,标记,标志和图像是其各自所有者的注册商标。 Inno Setup :trade_mark:便携式应用程序由 :rocket: 。 文档和下载可以在上找到 有什么可以帮忙的吗? 欢迎各种贡献 :raising_hands: ! 表示支持的最基本方法是加注星标 :glowing_star: 该项目,或提出问题 :speech_balloon: 您也可以通过支持该项目 :clapping_hands: 或通过进行来确保这一旅程无限期地继续下去! :rocket: 再次感谢您的支持,非常感谢! :folded_hands: 麻省理工学院。 有关更多详细信息,请参见LICENSE 。 火箭图标归功于 。
脚本 中的项目大部分可以嵌入常量。这些预定义的字符被包含在括弧 { } 中。 安装 程序或卸载程序会根据 用户 选择 和系统配置将这些常量翻译为文字值。例如,{win} 在大部分系统中会被翻译为“C:\WINDOWS”。 字符“{”视作为常量开始。如果你想将它作为实际字符使用,你必须使用两个连续的“{”字符。(对于“}”则不需要。) 当在常量后面直接跟随一个反斜杠时,如果常量的值末端已经包含了一
### 回答1: Inno Setup 是一个易于使用的 安装 包制作工具,它提供了丰富的 安装 选项和自定义功能。在使用 Inno Setup 制作 安装 包时,我们可以通过自定义 安装 界面来满足客户的各种需求。 通过 Inno Setup 的宏命令和 脚本 语言,我们可以轻松地修改默认的 安装 界面,例如添加自定义控件、更改按钮文本、更改字体和颜色等。可以使用Pascal 脚本 和Delphi Object Pascal语言。 要自定义 安装 界面,我们需要首先打开 Inno Setup 脚本 文件(.iss文件)并找到“[ Setup ]”部分。在这里,我们可以设置 安装 程序的各种选项,例如 安装 的目标路径、是否需要 安装 桌面快捷方式、是否需要 安装 开始菜单项等等。 然后,我们可以添加新的页面和自定义控件,例如 选择 安装 选项的页面、 选择 安装 路径的页面、 选择 应用程序图标的页面等等。我们可以使用 Inno Setup 自带的控件,也可以使用自定义控件来实现更复杂的功能。 最后,我们可以为每个页面添加Pascal 脚本 来实现自定义逻辑,例如检查 安装 目录是否已存在、检查系统是否已 安装 必要的组件等等。 总之, Inno Setup 提供了灵活的自定义 安装 界面功能,让我们可以满足不同客户的需求,并提高软件的 用户 体验。 ### 回答2: Inno Setup 可以在 安装 过程中自定义 安装 界面,使其更符合特定的软件需求和个性化需求。通过自定义 安装 界面,可以加强 用户 交互体验,提高软件的可用性和易用性,同时也可以为软件提供更精细的管理和控制。下面将分别从设计理念、开发流程和技术实现方面进行介绍。 Inno Setup 的自定义 安装 界面开发过程,从本质上来说是一次 用户 交互设计 (User Experience Design, UXD) 的过程。通过 UXD,设计师可以了解客户的需求、喜好和习惯,进而设计出更符合其需求的产品和服务。在自定义 安装 界面开发流程中,设计师需要考虑以下几个方面: 1. 界面设计。界面设计应该简单明了、美观大方,能够吸引 用户 的注意力并提高 用户 的参与度。同时需要考虑不同 用户 的操作习惯和口味,以达到更广泛的 用户 群体。 2. 用户 体验 (User Experience, UX) 设计。在设计界面时,需要考虑到 用户 的体验。例如:简化繁琐的操作、提供更多的 选择 、给予良好的反馈等都是好的 用户 体验设计。 3. 交互设计。特别是在软件界面方面,设计师需要思考 用户 将与之如何交互,如何设定第一时间与其进行沟通交流。 在设计理念上确定了之后,我们需要有一个中间人对需求进行保存和整理。通常情况下需要特别有经验的的开发人员还需要具备美工能力,能够从业务流程到界面交互再到发布之间都能够进行系统性的构建和实践。 首先,需要准备 安装 向导的图片资源、控件资源等基本素材,并制定对应的管理策略。然后在1.4版本以上的 Inno Setup 中,我们可以手动复制 Setup 向导的默认源文件,再进行相应的更改即可。 接着,需要使用 Pascal 编写 脚本 来确保 安装 向导能够正确检测到 用户 的操作,以及完成相应的 安装 任务。同时,还需要定义 安装 向导的菜单项、默认值、文件读取方式等,以方便 用户 进行自定义设置和个性化操作。 最后,在整个自定义 安装 界面开发完成后,我们需要使用 Inno Setup 自带的编译器工具将代码打包并生成可供 安装 安装 包,从而方便 用户 进行 安装 和使用。 技术实现方案 实现自定义 安装 界面的技术方案主要分为以下几个方面: 1. 界面设计工具。可以 选择 比较流行的界面设计工具,如 Adobe Photoshop,Axure RP,Sketch 等,这些工具都具有快速地设计复杂界面的能力。 2. 编程语言。 Inno Setup 采用 Pascal 语言编写,因此需要对 Pascal 语言有一定的了解和掌握基本的编程技能。 3. Inno Setup 插件。 Inno Setup 提供了一系列插件,可以方便我们在 安装 向导中引入大量有用的功能,如申请服务权限、加密等。 需要注意的是, Inno Setup 自定义 安装 界面开发风格应该以简单、实用、易于维护为原则,在设计时需要注意不要过于复杂和繁琐,以方便 用户 进行快速的操作和 安装 。 ### 回答3: Inno Setup 是一款功能强大的 安装 程序制作软件,它可以帮助开发者快速的制作出 安装 程序。而自定义 安装 界面则是 Inno Setup 所提供的一个很实用的功能之一,它可以使得开发者可以自由的设计自己的 安装 界面,让 用户 有一个更加舒适的 安装 体验。 首先,我们需要了解 Inno Setup 自定义 安装 界面的实现方式。整个 安装 过程中, Inno Setup 会按照一定的流程逐步展示各个界面,在每一个界面上,开发者都可以通过界面的设计和编写代码来进行自定义。 在设计 安装 界面时,我们可以使用 Inno Setup 自带的画布工具或者其他画图工具来设计出自己喜欢的 安装 界面,然后通过 Inno Setup 的代码来添加各种控件和事件。例如,我们可以添加各种按钮、文本框、进度条、复选框等控件,并通过代码来控制它们的显示和行为。 接下来,我们需要考虑自定义 安装 界面需要实现哪些功能。例如,我们可能需要在 安装 界面中添加自己的公司Logo、版本号、 安装 路径等信息,或者添加一些 用户 需要填写的信息,比如 用户 的名称、电子邮件和密码等。如果需要,我们也可以添加自己的 安装 协议和许可协议,并让 用户 需要点击同意才能继续 安装 。 总的来说, Inno Setup 的自定义 安装 界面功能非常强大,可以让开发者灵活的设计和实现自己的 安装 界面。但是需要注意的是,设计一个良好的 安装 界面需要考虑到 用户 的体验和操作方式,所以我们需要仔细考虑每一个控件的设计和布局,让 用户 能够尽可能的了解整个 安装 过程,并且保持简洁和易于操作。