安装事件函数 Pascal 脚本

Pascal 脚本可以包含单独的在适当时间调用的事件函数。

安装事件函数

安装支持下列事件函数:

function InitializeSetup (): Boolean;

在安装程序初始化时调用,返回 False 中断安装,返回 True 反之。

procedure InitializeWizard ();

使用这个事件函数启动时改变向导或向导页。你不能在它触发之后使用 InitializeSetup 事件函数,向导窗体不退出。

procedure DeinitializeSetup ();

仅在安装程序终止前调用。注意这个函数在即使用户在任何内容安装之前退出安装程序时也会调用。

procedure CurStepChanged (CurStep: TSetupStep );

你可以用这个事件函数执行你自己的预安装和安装后任务。

在实际安装开始之前用 CurStep=ssInstall 调用,或在实际安装完成之后用 CurStep=ssPostInstall 调用,或在安装程序终止之前和安装完成之后用 CurStep=ssDone 调用。

function NextButtonClick ( CurPageID : Integer): Boolean;

当用户单击下一步按钮时调用。如果你返回 True,向导将移到下一页;如果返回 False,它仍保留在当前页 (用 CurPageID 指定)。

注意,这个函数在静寂安装时也会调用,即使没有下一步按钮让用户单击。安装程序会模拟单击下一步按钮。在静寂安装中,如果你的 NextButtonClick 函数在安装之前返回 False,安装程序将自动退出。

function BackButtonClick ( CurPageID : Integer): Boolean;

当用户单击上一步按钮时调用。如果你返回 True,向导将移到上一页;如果返回 False,它仍保留在当前页 (用 CurPageID 指定)。

procedure CancelButtonClick ( CurPageID : Integer; var Cancel, Confirm: Boolean);

当用户单击取消按钮或单击窗口中的关闭按钮时调用。 Cancel 参数指定是否是一般的取消进程;默认为 True。 Confirm 参数指定是否显示“退出安装程序吗?”的消息框;一般它默认为 True。如果 Cancel 设为 False,那么 Confirm 值被忽略。

function ShouldSkipPage ( PageID : Integer): Boolean;

向导调用这个事件函数确定是否在所有页或不在一个特殊页 (用 PageID 指定) 显示。如果返回 True,将跳过该页;如果你返回 False,该页被显示。

注意: 这个事件函数不被 wpWelcome、wpPreparing 和 wpInstalling 页调用,还有安装程序已经确定要跳过的页也不会调用 (例如,没有包含组件安装程序的 wpSelectComponents)。

procedure CurPageChanged ( CurPageID : Integer);

在新向导页 (用 CurPageID 指定) 显示后调用。

function CheckPassword (Password: String): Boolean;

如果安装程序在 Pascal 脚本中发现 CheckPassword 事件函数,它自动显示密码页并调用 CheckPassword 检查密码。返回 True 表示接受密码,返回 False 拒绝。

要避免在编译的安装程序的 [Code] 段内部贮存真实的密码,你应该用其它无用的信息进行比较: 计算你自己密码的 MD5 的无用信息,然后编译到 GetMD5OfString (Password) 。通过这种方法保护实际密码值。

注意: 如果你已经用 CheckPassword 事件函数,并且你的用户带“/PASSWORD=”和“/SILENT” 安装命令行参数 运行安装程序,你的 CheckPassword 函数将在其它事件函数调用之前调用,包括 InitializeSetup

function NeedRestart (): Boolean;

返回 True 告诉安装程序提示用户在安装结束时重新启动系统,False 则反之。

function UpdateReadyMemo (Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;

如果安装程序在 Pascal 脚本中发现 UpdateReadyMemo 事件函数,当 准备安装 向导页变为激活页时自动调用。它返回的文字显示在 准备安装 向导页的备注注册中,该文字是用 NewLine 参数 换行 的字符。参数空间包含一个带安全可靠的字符。其它参数将包含安装程序用于设置段的字符 (可能是空的)。 MemoDirInfo 参数包含象 选择目录 段的字符。

procedure RegisterPreviousData (PreviousDataKey: Integer);

要在自定义向导页中贮存用户输入的设置,在 Pascal 脚本中放入一个 RegisterPreviousData 事件函数,并调用 SetPreviousData(PreviousDataKey, ...) 替换它,每个设置一次。

function CheckSerial (Serial: String): Boolean;

如果安装程序在 Pascal 脚本中发现 CheckSerial 事件函数,将在用户信息向导页中自动出现一个序列号对象 (必须在你的 [Setup] 段中使用 UserInfoPage=yes !)。返回 True 表示接受序列号,返回 False 拒绝。当使用序列号时,请一定要记住,这个软件无加密可言,况且 Inno Setup 源代码是免费获取的,它对于有经验的人从安装程序中删除序列号保护并不是很困难的事。使用这个只是方便用户在你的应用程序中仔细检查输入的序列号 (贮存在 {userinfoserial} 常量)。

function GetCustomSetupExitCode : Integer;

返回一个非零值命令安装程序返回一个自定义退出代码。这个函数只在安装程序运行完成并且退出代码已是零时调用。同时请查阅 安装退出代码

function PrepareToInstall (var NeedsRestart: Boolean): String;

Return a non empty string to instruct Setup to stop at the 正在准备安装 向导页,显示返回的字符串作为错误信息。 Set NeedsRestart to True if a restart is needed. This function is only called if Setup didn't already determine it can't continue.

卸载事件函数

卸载支持下列函数:

function InitializeUninstall (): Boolean;

返回 False 中断卸载,True 则反之。

procedure InitializeUninstallProgressForm ();

Use this event function to make changes to the progress form at startup. You can't use the InitializeUninstall event function for this since at the time it is triggered, the progress form does not yet exist.

procedure DeinitializeUninstall ();

procedure CurUninstallStepChanged (CurUninstallStep: TUninstallStep );

function UninstallNeedRestart (): Boolean;

返回 True 命令卸载程序提示用户在卸载完成后重新启动系统,False 则反之。

常量

这里是这些函数使用的常量列表:

  • CurStep 值
    ssInstall, ssPostInstall, ssDone
  • CurUninstallStep 值
    usAppMutexCheck, usUninstall, usPostUninstall, usDone
  • 预定义 向导页 PageID
    wpWelcome, wpLicense, wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir, wpSelectComponents, wpSelectProgramGroup, wpSelectTasks, wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished

这些函数不需要在 Pascal 脚本中出现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值