Inno Setup中控件的创建及事件响应
来源:互联网 发布:单反推荐 知乎 编辑:程序博客网 时间:2024/05/28 04:55
最近我们公司开发的产品由于需要添加开机自启动项,注册表修改的一系列的系统认为的不安全操作,因此我们的产品在安装有360的系统会有一系列的提示,故需要将我们的产品添加至360信任程序,由于我们的产品在添加自启动项时没有提示信息,被拒绝了。所以在我们的产品安装包的安装过程中需要增加同意自启动项的复选框。我们的安装包是用Inno Setup进行打包的,我在编写的时候没有找到太多这一块的资料,所以就简单的描述一下我的认识,如有不对之处,还望指正。
InitializeWizard()此方法为初始化安装向导,就如MFC中的OnInitDialog()方法,初始化时会执行此方法中的内容。
在安装向导界面中增加复选框的代码如下:
[Code]
procedure ExitProcess(uExitCode: UINT); // 利用系统提供的ExitProcess方法
external 'ExitProcess@kernel32.dll stdcall';
var
InstallHelpCheckBox: TNewCheckBox;
procedure InstallHelpCheckBoxOnClick(Sender: TObject); // 复选框的事件响应函数,参数必须为此类型
begin
if (InstallHelpCheckBox.Checked = False) then
begin
if MsgBox('您拒绝了添加node.exe开机自启动服务,程序无法正常运行,保持添加点击“是”,取消添加点击“否”', mbInformation, MB_YESNO) = idYES then
begin
InstallHelpCheckBox.Checked := True;
end
end
end;
procedure InitializeWizard();
begin
InstallHelpCheckBox := TNewCheckBox.Create(WizardForm);
InstallHelpCheckBox.Parent := WizardForm;
InstallHelpCheckBox.Top := WizardForm.Top - 30;
InstallHelpCheckBox.Left := WizardForm.Left - 220;
InstallHelpCheckBox.Width := WizardForm.Width -10;
InstallHelpCheckBox.Caption := '同意添加node.exe开机自启动服务';
InstallHelpCheckBox.Color := clWhite;
InstallHelpCheckBox.Checked := True;
InstallHelpCheckBox.OnClick := @InstallHelpCheckBoxOnClick; // 关联事件响应函数的方式
end;
//由于创建的复选框控件是在WizardForm之上,故整个安装过程的向导界面都包含此复选框,这不是我此次修改想要的,每一个安装向导界面中都包含默认的按钮,主要是三个“下一步”、“上一步”,“取消”,并且每个安装向导界面都有固定的ID。向导界面的ID主要包含以下几种
- wpWelcome, wpLicense, wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir, wpSelectComponents, wpSelectProgramGroup, wpSelectTasks, wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished
我们的需要是想在安装的第一个界面中(wpWelcome为此界面的ID),其他的界面使用默认的就好,不要此复选框。向导界面中的按钮有固定的响应函数,分别为
begin
Result := True;
if CurPageID = wpSelectDir then
begin
InstallHelpCheckBox := TNewCheckBox.Create(WizardForm);
InstallHelpCheckBox.Parent := WizardForm;
InstallHelpCheckBox.Top := WizardForm.Top - 30;
InstallHelpCheckBox.Left := WizardForm.Left - 220;
InstallHelpCheckBox.Width := WizardForm.Width -10;
InstallHelpCheckBox.Caption := '同意添加node.exe开机自启动服务';
InstallHelpCheckBox.Color := clWhite;
InstallHelpCheckBox.Checked := True;
InstallHelpCheckBox.OnClick := @InstallHelpCheckBoxOnClick;
end
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = wpWelcome then
begin
if InstallHelpCheckBox.Checked = False then
begin
if MsgBox('您拒绝了添加node.exe开机自启动服务,程序安装完成也无法正常运行,如果重新选择点击“是”,如若退出选择“否', mbInformation, MB_YE SNO) = idNO then
begin
ExitProcess(0);
end
Result := False;
end
else
begin
InstallHelpCheckBox.Free();
end
end
end;
- Inno Setup中控件的创建及事件响应
- INNO SETUP数据库的连接与创建
- 默认情况下inno setup创建的快捷方式中起始位置是空的
- inno setup打包安装程序中让“是否创建快捷方式”默认为“打钩”的方法
- inno setup创建的快捷方式的起始位置的问题
- 在dialog中控件的响应事件
- (转)在MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- MFC中动态创建控件以及事件响应实现方法
- 数据结构之栈(四)
- 设计模式 命令模式 之 管理智能家电
- 图像模式
- SpringMVC中url-parden配置的问题和SpringMVC中js、css不生效问题
- vs2013窗口布局恢复
- Inno Setup中控件的创建及事件响应
- 是人才就不要等老板来安排你的工作 !
- 详解a href=#与 a href=javascript:void(0) 的区别
- 此证书的签发者无效Missing iOS Distribution signing identity问题解决
- 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 & 第一个Shader的书写
- C#泛型集合之Dictionary使用技巧
- 闲来无事做了个苹果手机价值与小米手机价值比较
- Redis与Memcached的区别
- NSBundle介绍