本帖最后由 烟99 于 2026-3-20 00:25 编辑
《吾爱破解精华集 2025》电子书自解压文件InnoSetup安装脚本
【基本信息】
源码名称:《吾爱破解精华集 2025》电子书自解压文件InnoSetup安装脚本
源码编写:吾爱破解@烟99
【基本介绍】
此安装脚本主要目的是实现电子书资源文件自解压,同时通过[code]段自定义Pascal脚本来
实现自定义界面、判断文件是否存在、安装后运行电子书三个功能,支持随机皮肤、窗口淡
入淡出,使用lzma2极限压缩算法,有需要使用InnoSetup压制自解压文件的同学可参看此脚
本。初学Pascal和Delphi编程,如源码有不足之处还请多多包涵!
【如何编译】
本脚本基于Restools汉化修改的InnoSetup 5.5.1.ee2 ANSI版本编译器编译,此版本诞生于
2012年,虽然年代久远,但此版本编译出的exe具有运行稳定、不易误报、防止非法解包等
优点。尽管源码未使用restools后续添加的指令,但出于稳定考虑,强烈建议使用此版本编
译器编译,如果你没有此版本的InnoSetup编译器,可通过以下链接下载:
下载链接:https://www.lanzoux.com/b0caqej9g
访问密码:52pj
我们提供的是热心网友制作的多版本整合版,安装时要使用自定义安装,选择“ANSI”版本
下的“拓展防解包(Restools)”这个版本,分享文件夹里有安装图解Word文本,不会的看
word文本。
安装好编译器后,请将要打包的文件放在{APP}文件夹中,不想放在那个文件夹,请自行修改
脚本参数,另外splash.bmp和icon.ico是自解压包头图和程序图标,如需自定义,也请自行
修改脚本参数。
【这次增加了什么】
1、【新增】加入了欢迎访问和本源码链接两个文本标签。
2、【优化】这次调整了窗口大小,适配大屏幕电脑,显得不再拥挤。
3、【修复】用于驱动随机皮肤的整型数组最后一个整数值写重复了,导致最后一个皮肤不会出现在随机列表,已进行修复。
【版权声明】
本脚本最终版权归吾爱破解论坛会员烟99所有,脚本仅供个人学习,如需商业使用请联系我们。
联系方式:service@52pojie.cn
【源码预览】
// 点击"解压缩"按钮的操作函数
procedure unpackbuttonOnClick(Sender: TObject);
// 根据电子书自解压程序的设计思路,执行解压缩操作,需要先判断解压目录是否存在电子书文件,根据文件名和MD5判断
// 是不是电子书的文件,两个条件缺一不可,全部满足才会触发询问是否覆盖文件的对话框。
// 注意:修改判断目标文件名和MD5请修改前面的deifine参数,请不要修改此处!
// 定义局部变量
var
objectmd5,exemd5: string; // 被测文件MD5值和指定MD5变量
iResult: Integer; // 返回值
begin
if FileExists(ExpandConstant('{app}\{#objectfile}')) = true then // 这里用chrome_100_percent.pak来判断
begin
objectmd5 := GetMD5OfFile(ExpandConstant('{app}\{#objectfile}'));
exemd5 := '{#exemd5}';
iResult :=CompareText(objectmd5,exemd5);
if iResult = 0 then
begin
if MsgBox('发现当前解压目录含有电子书文件,继续解压缩将会导致原文件覆盖,是否继续?', mbError, MB_YESNO)=IDYES then //选择“是”直接解压。
WizardForm.NextButton.OnClick(WizardForm);
end
else
WizardForm.NextButton.OnClick(WizardForm); // 条件二不满足执行解压
end
else
WizardForm.NextButton.OnClick(WizardForm); // 条件一不满足执行解压
end;
// 点击"取消"按钮的操作函数
procedure cancelunpackOnClick(Sender: TObject);
begin
WizardForm.CancelButton.OnClick(WizardForm); // 模拟点击Inno原生的"取消"按钮。
end;
// 点击论坛URL网址按钮的操作函数
procedure websiteOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
if (MsgBox('即将访问{#MyAppPublisher}主页,是否继续?',mbConfirmation,MB_YESNO))=6 then
begin
ShellExec('open', '{#MyAppURL}', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
end;
// 点击论坛获取自解压脚本按钮的操作函数
procedure getsourcecodeOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
if (MsgBox('亲,这个自解压程序是基于InnoSetup压制的,脚本开源哦!每一次启动都会加载不同的皮肤,十分炫酷!不来学学吗?点击<是>即可跳转到帖子。',mbConfirmation,MB_YESNO))=6 then
begin
ShellExec('open', 'https://www.52pojie.cn/thread-2097395-1-1.html', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
end;
【效果截图】
【源码下载】
发帖之时起5天内回复可见,5天后解除隐藏,对全网开放。
下载链接:https://wwava.lanzoub.com/iYJSk3ktqdah
访问密码:52pj
|