在 Inno Setup 中实现倒数N秒后激活按钮
原文 http://restools.hanzify.org/article.asp?id=67
timectrl.dll 为一个 6.5 KB 的按钮激活时间控制插件。
; restools
; http://restools.yeah.net
; 此插件同样可以使用在 NSIS 的安装程序中。
; 这只不过是演示一下没有什么是实现不了的,只是值不值得的问题,为了这么一个小功能而去编一个相对麻烦的插件,我觉得太过浪费时间了。
; 其实只要在 Windows 中,就可以外挂任何的东西,只不过看看究竟你的重心是在做安装程序,还是在做外挂。如果做一个外挂的插件比做这个安装程序还复杂,倒不如我自己编写安装程序的自由度还来得大。
; 时间仓促,所以编程可能会有点谬误,如有错误可以提出
[Setup]
AppName=我的程序
AppVerName=我的程序 版本 1.5
DefaultDirName={pf}\我的程序
DefaultGroupName=我的程序
UninstallDisplayIcon={app}\MyProg.exe
LicenseFile=license.txt
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
Source: "timectrl.dll"; Flags: dontcopy
[Icons]
Name: "{group}\我的程序"; Filename: "{app}\MyProg.exe"
[code]
function starttimer(WizardFormHandle: HWND; ButtonHandle: HWND; ButtonCaption: PChar; RTime: UINT): BOOL; external 'starttimer@files:timectrl.dll stdcall';
//WizardFormHandle 向导窗口句柄
//ButtonHandle 下一步按钮句柄
//ButtonCaption 秒数倒数完毕后要在按钮上显示的文字
//RTime 剩余时间
function stoptimer(): BOOL; external 'stoptimer@files:timectrl.dll stdcall';
function IsWindowEnabled(hWnd: HWND): BOOL; external 'IsWindowEnabled@user32.dll stdcall';
procedure InitializeWizard();
begin
WizardForm.LICENSEACCEPTEDRADIO.Hide;
WizardForm.LICENSENOTACCEPTEDRADIO.Hide;
WizardForm.LICENSEACCEPTEDRADIO.Checked := True;
WizardForm.LICENSEMEMO.Height := 170;
with TLabel.Create(WizardForm) do
begin
Parent := WizardForm.LicensePage;
Top := 200;
Left := 2;
Caption := '如果你点击“我同意”进入下一页面,即表示你同意以上协议。';
end;
end;
procedure DeinitializeSetup();
begin
stoptimer();
end;
procedure CurPageChanged(CurPageID: Integer);
begin
//一定要别人先看协议20秒,即使返回欢迎页面,秒数倒数会停止,再进入协议秒数倒数继续
if CurPageID = wpLicense then
starttimer(WizardForm.Handle,WizardForm.NEXTBUTTON.Handle,'我同意(&I)',20)
else
if (CurPageID = wpWelcome) or (CurPageID = wpSelectDir) then
begin
stoptimer();
WizardForm.NEXTBUTTON.Caption := '下一步(&N) >';
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if (CurPageID = wpLicense) then
Result := IsWindowEnabled(WizardForm.NextButton.Handle)
else
Result := True;
end;
点击这里下载脚本例子:
http://restools.hanzify.org/inno/timectrl/inno_timectrl.zip
转载于:https://www.cnblogs.com/lonelyxmas/p/3234015.html
在 Inno Setup 中实现倒数N秒后激活按钮相关推荐
- django中实现页面倒数几秒后自动跳转
实现倒计时跳转要和html中的js结合起来, 例如:实现一个页面简单的注册,然后注册成功后倒计时自动跳转到登录页面. # 注册页面 def register(request):return rende ...
- jquery实现按钮倒数7秒后才可以点击
方法一: <input type="button" value="下一步" id="button" disabled> < ...
- 例子:10秒后同意按钮可点击
<body><div><span id="daojishi">10</span><input disabled="d ...
- Inno Setup 是什么?
1.Inno Setup 是什么? Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超 ...
- inno setup相关 (二)
本周在改一个inno setup卸载时不关闭运行程序的问题,在这个过程中发现官方文档的重要性: 官方文档地址:http://www.jrsoftware.org/isinfo.php 一.inno s ...
- [转载]INNO Setup 使用笔记
http://www.cnblogs.com/pyw0818/archive/2011/01/22/1941806.html (自定义卸载) http://www.cnblogs.com/pyw081 ...
- 使用exe4j+inno setup打包exe文件踩坑记录
一.前言 最近用Java给朋友写了一个截图工具和将所有图片生成pdf工具,但是由于朋友不是计算机行业的人员,如果为了使用java常见的运行方式运行工具,则还需要在电脑上安装jdk与jre,着实不方便. ...
- Inno Setup 系列之添加管理员权限
需求 Inno Setup打包的程序安装完成后运行失败,这个是因为权限不够,打包的应用需要管理员权限 解决 1.在[Setup]节点添加 PrivilegesRequired=admin 2.在Inn ...
- Inno Setup入门 (软件打包工具)学习笔记 (26课全)
[] : 里面的就是 段 每个段里面的是属性 AppId : 软件的APPID尽量是唯一的,随机生成,尽量不跟其他软件的ID冲突,这个ID安装之后是要写进系统的注册表的,系统在管理和卸载你的软件的时候 ...
最新文章
- 高频面试题:秒杀场景设计
- js/jq基础(日常整理记录)-2-一个简单的js方法实现集合的非引用拷贝
- Java多线程(三)之ConcurrentHashMap深入分析
- 使用的 SQL Server 版本不支持数据类型“datetime2”的错误解决方法
- 小猪佩奇python_python画个小猪佩奇
- window系统对应默认IE浏览器版本
- 三菱Q系列plc串口通讯四台台达变频器通讯程序
- nms网关服务器日常维护,ZXB10-NMS网管解决方案
- python 实现随机加减法
- 好的编码习惯是一场代码驱邪仪式
- Java学习笔记Day2:流程控制
- USB xHCI控制器使用总结
- 浏览器自动转到外国服务器,通过HSTS实现浏览器自动跳转https(非服务器响应跳转)...
- 免杀的N种姿势-msf篇
- Linux查看CPU核数
- 分享88个搜索链接PHP源码,总有一款适合你
- 浅谈2017棋牌游戏的前景 运营 推广(中) 转贴
- 小孩学python有意义吗-小孩Python编程培训有用吗
- 小程序处理大量数据列表的方法
- HFSS 带状线仿真(HFSS和3D LAYOUT的比较)
热门文章
- c#_continue 和 break 的区别
- 预录取到计算机,预录取什么情况不录取 原因有哪些
- oracle存储过程建分区表,oracle存储过程创建表分区实例
- java jetty eclipse_用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)
- python调用百度地图画轨迹图_[python]百度地图API,正/逆地理编码,路线规划接口的调用,实现输出出行的距离和......
- vivo计算机的隐藏功能介绍,vivo手机有哪些隐藏功能?这6个功能实在太好用了,要悄悄用起来...
- 计算机仿真实验用的教学软件是,AR增强现实教学软件,学习效果倍增
- asp怎么循环增加字段和字段对应的值_ASP.NET Core教程「三」实体字段属性
- jdk自带压测工具_FULL GC分析过程分享
- 通信专业考研考C语言,2016年北京邮电大学信息与通信工程学院C语言程序设计考研复试题库...