现在所谓的绿色单文件软件,大多与以下代码原理相似:把软件运行需要的文件封装为一个EXE文件,双击时释放到某个目录(大多是TEMP)并运行主程序文件,如果主程序文件退出则删除释放的文件及注册表相关信息。其实,绿色单文件版软件并没有多少技术含量,大家不要想得太过神秘。(也许有与轻狂上述原理不同的,但我没有发现,也不想研究这个了。)
NSIS示例代码如下:
;使7-Zip打开看不到其他内容。 !system '>blank set/p=MSCF<nul' !packhdr temp.dat 'cmd /c Copy /b temp.dat /b +blank&&del blank' !define PRODUCT_NAME "NSIS图文教程集锦 - 轻狂志" !define /date DATE "%Y.%m.%d.%H" !define VER "${DATE}" name "NSIS图文教程集锦 - 轻狂志" outfile 'NSIS图文教程集锦 - 轻狂志 - ${VER}.exe' SilentInstall silent !define MUI_ICON BookTool.ico XPStyle on !include "MUI.nsh" !insertmacro MUI_LANGUAGE "simpchinese" VIProductVersion "${VER}" VIAddVersionKey /LANG=2052 "ProductName" "NSIS图文教程集锦" ;产品名称 VIAddVersionKey /LANG=2052 "Comments" "NSIS图文教程集锦 By 少轻狂" ;备注 VIAddVersionKey /LANG=2052 "CompanyName" "轻狂志|www.flighty.cn" ;公司 VIAddVersionKey /LANG=2052 "轻狂志" "www.flighty.cn" ;WEB VIAddVersionKey /LANG=2052 "LegalTrademarks" "轻狂志" VIAddVersionKey /LANG=2052 "LegalCopyright" "(C) 2009--2010 www.flighty.cn 轻狂志" ;版权 VIAddVersionKey /LANG=2052 "FileDescription" "NSIS图文教程集锦 - 轻狂志" ;描述 VIAddVersionKey /LANG=2052 "FileVersion" "${VER}" VIAddVersionKey /LANG=2052 "OriginalFilename" "NSIS图文教程集锦 - 轻狂志.chm" ;源文件名 Section "nsisebook" SetOutPath "$TEMP" File /r "nsisebook" ExecShell "open" "$TEMP\nsisebook\nsisebook.chm" SectionEnd |