打印

[求助] inno中怎样实现静默安装??

inno中怎样实现静默安装??

inno中怎样实现静默安装?我查阅有关资料,使用:“setup.exe /sp- /silent /norestart ”可以实现,这段代码怎样使用????

TOP

静默安装 是其他软件 在调用你的软件安装包的时候 这么调用,不是你的安装包内要做什么特殊的代码。

TOP

那是 Inno 自身固有的。
本来就支持的。

TOP

那是 Inno 自身固有的。
本来就支持的。

TOP

安装命令行参数
安装程序接受可选的命令行参数。这些对于系统管理员以及其它程序调用安装程序时有用。

/SP-
在安装开始时禁用“这将安装... 你想继续吗?”的提示,当然,如果 [Setup] 段的指令 DisableStartupPrompt 设为 yes 时,这将无效。

/SILENT, /VERYSILENT
告诉安装程序后台或完全后台运行。当安装程序在后台运行时,向导和背景窗口将不显示,但安装进度窗口显示。当安装程序在完全后台安装时,这个安装进度窗口也不显示。其它的事件被象正常安装一样,例如安装期间显示错误消息框,以及启动时提示 (如果你没有在 DisableStartupPrompt 或上面说明的“/SP-”命令行选项中指定)。

如果需要重新启动,以及未使用“/NORESTART”命令行 (看下面),并且安装程序在后台运行,将显示“立即重新启动吗”消息框。如果在完全后台安装模式,将在不询问的情况下重新启动。

/SUPPRESSMSGBOXES
命令安装程序可禁止消息框。只在用“/SILENT”和“/VERYSILENT”编译时有效。

在这种情况下默认会有一个选择:

在“保留新文件吗”中会选择是。
在“文件存在,确认覆盖。”中会选择否。
在中断/重试情况下会选择中断。
在重试/取消情况下会选择取消。
在 DiskSpaceWarning/DirExists/DirDoesntExist/NoUninstallWarning/ExitSetupMessage/ConfirmUninstall 情况下会选择是 (继续)。
在 FinishedRestartMessage/UninstalledAndNeedsRestart 情况下会选择是 (重启)。
有 5 种消息不能禁止:

中断安装程序消息框。
“退出安装程序吗”消息框。
当安装程序需要在新磁盘安装但新磁盘未找到时显示的 FileNotInDir2 消息框。
在安装程序或卸载程序不能读取命令行参数之前显示的任何 (错误) 消息。
用 [Code] 段支持函数 MsgBox 显示的消息框。
/LOG
使安装程序在用户的临时目录创建一个记录安装程序安装期间 [Run] 段详细动作的日志文件。这对于安装调试有帮助。例如,在你认为一个文件应该被替换,但你怀疑它没有被替换时 (反之亦然),该日志文件将告诉你这个文件是否确实被跳过,并且为什么会跳过。

日志文件若要当前日期的唯一名字创建(它不覆盖或添加到现有的文件中)。

日志文件中包含的信息是用自然语言,非常容易看懂,对于用户来说不会难以理解。也不用进行机器分析;文件的格式是不预先通知服务改变。

/LOG="文件名"
与 /LOG 相同,另外它还允许你为日志文件指定一个固定的路径/文件。如果相同的名字在路径中已经存在则将被覆盖,如果不能创建文件,安装程序将带错误消息中断。

/NOCANCEL
通过禁用“取消”按钮和忽略在“关闭”按钮的单击动作,来防止用户在安装进行时取消操作,与 /SILENT 或 /VERYSILENT 一起使用有用。

/NORESTART
告诉安装程序即使需要重新启动,也不重新启动。

/RESTARTEXITCODE=退出代码
指定当需要重新启动时安装程序返回的自定义退出代码。通常跟随“/NORESTART”。同时请查阅安装退出代码。

/LOADINF="文件名"
告诉安装程序在选中命令行后从指定的文件载入设置。这个文件可以是使用下面说明的“/SAVEINF=”命令提供的。

如果文件名包含空格,不要忘记使用引号。

/SAVEINF="文件名"
告诉安装程序保存安装设置到指定的文件。

告诉安装程序保存安装设置到指定的文件。

/LANG=语言
指定要使用的语言。指定的语言是 [Languages] 段条目中指定的语言内部名字。

当使用了一个有效的 /LANG 参数时,选择语言对话框将被禁用。

/DIR="x:\目录名"
不考虑在选择目标位置向导页中显示的默认目录名。必须指定一个完整的路径。

/GROUP="文件夹名"
不考虑在选择开始菜单文件夹向导而中显示的默认文件夹名。如果 [Setup] 段指令 DisableProgramGroupPage 设为 yes,这条命令行参数将被忽略。

/NOICONS
告诉安装程序在初始时选中选择开始菜单文件夹向导页中的“不创建任何图标”选择框。

/TYPE=类型名
不考虑默认安装类型。

If the specified type exists and isn't a custom type, then any /COMPONENTS parameter will be ignored。

/COMPONENTS="用逗号分隔的组件名列表"
不考虑默认组件设置。使用这个命令行参数使安装程序自动选择一个自定义安装类型。

Only the specified components will be selected; the rest will be deselected。

If a component name is prefixed with a "*" character, any child components will be selected as well (except for those that include the dontinheritcheck flag). If a component name is prefixed with a "!" character, the component will be deselected。

This parameter does not change the state of components that include the fixed flag。

示例:
Deselect all components, then select the "help" and "plugins" components:
/COMPONENTS="help,plugins"
示例:
Deselect all components, then select a parent component and all of its children with the exception of one:
/COMPONENTS="*parent,!parent\child"
/TASKS="用逗号分隔的任务名列表"
指定初始应该是选中状态或不选中状态的 任务 列表。要取消任务的选中,用“!”字符作为名字的前缀。

只有指定的任务 (以及它的子任务) 将被选中;其余任务不被选中。如果你想保持默认的任务设置,只选中/不选中某些任务,请使用 /MERGETASKS。

If a task name is prefixed with a "*" character, any child tasks will be selected as well (except for those that include the dontinheritcheck flag). If a task name is prefixed with a "!" character, the task will be deselected。

示例:
不选中所有任务,然后选择“desktopicon”和“fileassoc”任务:
/TASKS="desktopicon,fileassoc"
示例:
不选中所有任务,然后选择上级任务项目,但它的子任务中的某个不选中:
/TASKS="*parent,!parent\child"
/MERGETASKS="用逗号分隔的任务名列表"
像 /TASKS 参数,除指定的任务将被与已有的任务集合并外,其它按默认选择。

如果 UsePreviousTasks 设为 yes,指定的任务将在上一次任务回复后被选中/不选中。

示例:
保持选定任务的默认设置,但另外选中“desktopicon”和“fileassoc”任务:
/MERGETASKS="desktopicon,fileassoc"
示例:
保持选定任务的默认设置,但不选中“desktopicon”任务:
/MERGETASKS="!desktopicon"
/PASSWORD=密码
指定要使用的密码。如果 [Setup] 段指令 Password 未设置,这条命令行参数被忽略。

当指定无效的密码时,这个命令行参数也被忽略。

TOP

版主解得详尽,学习

TOP

[setup]
Uninstallable=no
DisableDirPage=yes
DisableReadyMemo=yes
DisableReadyPage=yes
DisableStartupPrompt=yes
DisableProgramGroupPage=yes
DisableFinishedPage=yes

[Code]
const
WM_LBUTTONDOWN = 513;
WM_LBUTTONUP = 514;

procedure InitializeWizard();
begin
PostMessage(WizardForm.NextButton.Handle,WM_LBUTTONDOWN,0,0);
PostMessage(WizardForm.NextButton.Handle,WM_LBUTTONUP,0,0);
// 其它代码
end;


;以上脚本无卸载程序、完成页面、目录选择页面、准备安装页面。

;[CODE] 脚本为跳过欢迎页面,其它脚本不变。编绎后的程序为
静默安装,但显示安装过程。

;启动安装程序自动执行安装,自动结束!

TOP

怎样能隐藏安装过程???

TOP


还以为是小3发问

视觉混乱ID

TOP

[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpWelcome then
WizardForm.NextButton.OnClick(WizardForm);
end;

TOP

呵呵。
上面这个代码还不完善哦,还要加上隐藏上一步按钮的代码,否则点击又跳回来,不完美哦。

TOP

[setup]
Uninstallable=no
DisableDirPage=yes
DisableReadyMemo=yes
DisableReadyPage=yes
DisableStartupPrompt=yes
DisableProgramGroupPage=yes
DisableFinishedPage=yes

[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpWelcome then
WizardForm.NextButton.OnClick(WizardForm);
end;

此脚本编绎的程序点击后自动安装(界面不显示)

TOP

参考以上代码 还有个美中不足的地方:安装程序大约在文件拷贝时 在任务条上出现 如下图。



执行安装程序时候 带/verysilent参数时 不会出现这个任务条上图标。

谁有好办法 去除这最后的瑕疵 非常感谢。
附件: 您所在的用户组无法下载或查看附件

TOP

回复 13# 的帖子

估计不好实现这一步。

TOP

摘自jrsoftware的FAQ:
Q:Is it possible to do a silent install without using the /SILENT or /VERYSILENT command-line parameters?
A:No, nor is such a feature planned (it would be abused). If it is your intention to keep user interaction to a minimum, use the Disable* [Setup] section directives.

看来官方的意见也是用那些Disable*设置项了.
我Run我的脚本,发现确实是在拷贝文件的过程中 出现的 那个任务条.

TOP

看我的帖子。和你隔壁帖呢。

TOP

除非修改编译的源码重新编译编译器。
我的QQ绿色版设置工具就可以隐藏任务栏的,不过不会外传的哦。

TOP