|
|
本帖最后由 rgy 于 2020-9-17 16:25 编辑
更新WinHex的时候发现19.8 SR-8这个版本很好,直接注册机算号就行,不用改官方任何文件,不用像19.9那样集成解锁DLL劫持补丁,也不破坏数字签名,现在用NSIS打包一个自解压单文件分享下。
单文件特点:
1.加入许可授权文件为专家版;32位64位自适应;可以拖拽打开文件。
2.多开的时候不会因为关闭一个进程就开始删除程序。
3.用7z提取WinHex文件夹就可以直接当绿色版用。
2020.09.16更新
1.优化脚本,避免重复解压。
2.提供脚本,可以自行打包。
WinHex_19.8_SR-8.part1.rar
(2 MB, 下载次数: 474)
WinHex_19.8_SR-8.part2.rar
(354.94 KB, 下载次数: 448)
- ;NSIS单文件打包模板20200916
- ;****************************************
- ;*定义变量
- ;****************************************
- !define APP "WinHex" ;程序主要名(不带空格)。
- !define VER "19.8_SR-8" ;版本号。
- !define APPDIR "$TEMP\${APP}_${VER}" ;定义APPDIR为主程序路径。
- !define /date DATE "%Y.%m.%d.%H" ;定义DATE为年.月.日.时。
- !define TIMEVER "Build ${DATE}" ;定义TIMEVER为 Build 年.月.日.时。
- ;****************************************
- ;*基本信息
- ;****************************************
- Caption "${APP}" ;标题栏显示文字(用于弹出窗口)。
- OutFile "${APP}_${VER}_自用版.exe" ;指定成品输出的路径和文件名。
- Icon "${APP}.ico" ;设置输出程序的ico图标。
- ;****************************************
- ;*头文件
- ;****************************************
- !include "x64.nsh"
- ;加入x64头文件,判断系统位数会用到。
- !include "FileFunc.nsh"
- ;加入FileFunc头文件,获取命令行参数会用到。
- ;****************************************
- ;*常规属性设置
- ;****************************************
- Unicode true
- ;生成为Unicode编码程序。
- SilentInstall silent
- ;设置为静默安装。
- AutoCloseWindow True
- ;安装完成的时候窗口自动关闭。
- SetDatablockOptimize On
- ;优化数据区块,重复文件不多占用空间。
- SetCompressor /SOLID lzma
- ;指定压缩方式,/SOLID所有的数据将被压缩在一个区块里,这样可以提高压缩率。
- SetCompressorDictSize 32
- ;设置使用 LZMA 压缩器时的字典大小 (默认为 8MB)。
- RequestExecutionLevel none
- ;安装程序需要的执行级别none|user|highest|admin。设为默认值none将由Windows来判断执行级别,none和admin实际上具有相同效果。
- SetOverwrite on
- ;File命令文件是否覆盖。on全覆盖;off全不覆盖;try默认覆盖,覆盖不了的就略过;ifnewer只有旧文件被覆盖;ifdiff新旧不一的文件才被覆盖,且设为新文件的日期。
- ;*****************************************
- ;*版本信息
- ;*****************************************
- VIProductVersion "${DATE}" ;在文件属性版本表格的顶部添加产品版本号。
- VIAddVersionKey /LANG=2052 "FileDescription" "${APP}_${VER}" ;文件说明。
- VIAddVersionKey /LANG=2052 "ProductName" "${APP}" ;产品名称。
- VIAddVersionKey /LANG=2052 "ProductVersion" "${VER}" ;产品版本。
- VIAddVersionKey /LANG=2052 "LegalCopyright" "" ;版权。
- VIAddVersionKey /LANG=2052 "CompanyName" "" ;公司。
- #VIAddVersionKey /LANG=2052 "OriginalFilename" "${APP}_${VER}.exe" ;原文件名。
- VIAddVersionKey /LANG=2052 "FileVersion" "${TIMEVER}" ;版本号。
- ;*****************************************
- ;*运行
- ;*****************************************
- Section "main" ;创建区段,名称为main。
- ;------主程序运行前的准备工作----------
- SetOutPath "${APPDIR}" ;设置文件解压路径,且当路径不存在时创建。
- File /a /r "${APP}\*" ;解压一个文件夹,同时也指定了该文件夹打包的来源路径。
- ;----------运行主程序----------------
- ${GetParameters} $R1 ;获取命令行参数到用户变量R1。
- ${If} ${RunningX64} ;判断系统是不是64位。
- Execwait '"${APPDIR}\WinHex64.exe" $R1' ;如果当前系统是64位就运行64位程序并且等待运行结束。
- ${Else}
- Execwait '"${APPDIR}\winhex.exe" $R1' ;反之则运行32位程序并且等待运行结束。
- ${EndIf}
- ;-----主程序运行结束后的清理工作--------
- SetOutPath "$TEMP" ;解压路径设置到$TEMP,最后才能完全删除文件夹。
- RMDir /r /REBOOTOK "${APPDIR}" ;删除文件夹。
- SectionEnd ;区段结束。
- ;********************************************************************
- ;*回调函数
- ;********************************************************************
- ;创建互斥,多开时避免重复解压和安装。
- Function .onInit
- System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APP}${VER}") i .r1 ?e'
- Pop $R2
- StrCmp $R2 0 end
- ${GetParameters} $R1
- ${If} ${RunningX64}
- Exec '"${APPDIR}\WinHex64.exe" $R1'
- ${Else}
- Exec '"${APPDIR}\winhex.exe" $R1'
- ${EndIf}
- Abort
- end:
- FunctionEnd
复制代码
|
评分
-
查看全部评分
|