脚本:通用PE工具箱1.1
优质
小牛编辑
127浏览
2023-12-01
下载地址和介绍在这里:
http://www.ton6.cn/viewthread.php?tid=409extra=page%3D1
http://www.ton6.cn/viewthread.php?tid=409extra=page%3D1
引用脚本的内容:
; 该脚本使用 HM VNISEdit 脚本编辑器向导产生 !include "LogicLib.nsh" ; 安装程序初始定义常量 !define PRODUCT_NAME "通用 PE 工具箱" !define PRODUCT_VERSION "1.1" !define PRODUCT_PUBLISHER "通用论坛" !define PRODUCT_WEB_SITE "http://bbs.ton6.cn" !define PRODUCT_UNINST_KEY "Software\MicR0soft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_R0OT_KEY "HKLM" SetCompressor lzma ; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------ !include "MUI.nsh" ; MUI 预定义常量 !define MUI_ABORTWARNING !define MUI_ICON "E:\program Files\VIT\图标\msWGA.ICO" !define MUI_WELCOMEFINISHPAGE_BITMAP "C:\program Files\NSIS\Contrib\Graphics\Wizard\orange.bmp" !define MUI_WELCOMEPAGE_TEXT " 通用 PE 工具箱是一款安装在硬盘使用的Windows PE工具集合,我们可以用它来实现系统的维护,我们可以使用它来修改密码,备份还原系统等。它运行快速,界面简洁,并且可以高度自定义。作为一个应急维护工具箱,我们相信它是您最好的选择!\r\n\r\n 欢迎访问官方论坛,下载工具插件,获取更多信息!官方论坛:bbs.ton6.cn 通用论坛。\r\n\r\n 作者:李培聪 (Uepon)\r\n\r\n $_CLICK" !define MUI_WELCOMEPAGE_TITLE "\r\n 欢迎使用 通用 PE 工具箱!" !define MUI_unICON "E:\program Files\VIT\图标\msWGA.ICO" ; 欢迎页面 !insertmacro MUI_PAGE_WELCOME ; 安装过程页面 !insertmacro MUI_PAGE_INSTFILES ; 安装完成页面 ;!insertmacro MUI_PAGE_FINISH ; 安装卸载过程页面 !insertmacro MUI_UNPAGE_INSTFILES ; 安装界面包含的语言设置 !insertmacro MUI_LANGUAGE "SimpChinese" ; 安装预释放文件 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ; ------ MUI 现代界面定义结束 ------ Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "Setup.exe" ShowUnInstDetails show ShowInstDetails show BrandingText "作者:李培聪 (Uepon)" ;定义sysdrive变量 Var sysdrive ;下面为判断系统版本并复制必要文件的部分 ;首先判断系统是9X还是NT,若为9X,则提示退出 ;若为NT则继续判断具体的系统,若为2003,则不复制NTLDR, ;XP、2000则复制 section "WindowsVersion" ;判断是9X还是NT ClearErrors ReadRegStr $R0 HKLM \ "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion IfErrors 0 IS_winnt ;是9X DetailPrint "系统检测到你的系统是 9X 平台" MessageBox MB_ICONSTOP "本工具暂时不能在你的系统里安装使用,请先退出!" Quit ;是NT IS_winnt: DetailPrint "系统检测到你的操作系统是 NT 平台,程序继续运行" StrCpy $R1 $R0 1 StrCmp $R1 '3' lbl_winnt_x StrCmp $R1 '4' lbl_winnt_x StrCpy $R1 $R0 3 StrCmp $R1 '5.0' lbl_winnt_2000 StrCmp $R1 '5.1' lbl_winnt_XP StrCmp $R1 '5.2' lbl_winnt_2003 lbl_winnt_x: StrCpy $R0 "NT $R0" 6 DetailPrint "你的操作系统为 Windows $R0 需要修补NTLDR引导文件" Goto lbl_do lbl_winnt_2000: Strcpy $R0 '2000' DetailPrint "你的操作系统为 Windows $R0 需要修补NTLDR引导文件" Goto lbl_do lbl_winnt_XP: Strcpy $R0 'XP' DetailPrint "你的操作系统为 Windows $R0 需要修补NTLDR引导文件" Goto lbl_do lbl_winnt_2003: Strcpy $R0 '2003' DetailPrint "你的操作系统为 Windows $R0 不需要修补NTLDR引导文件" Goto lbl_no lbl_do: DetailPrint "正在修补NTLDR引导文件" ReadEnvStr $sysdrive "SYSTEMDRIVE" SetOutPath "$sysdrive" SetOverwrite on File /r "D:\nt\*.*" SetFileAttributes "$sysdrive\NTDETECT.COM" HIDDEN|READONLY|system|ARCHIVE SetFileAttributes "$sysdrive\ntldr" HIDDEN|READONLY|system|ARCHIVE lbl_no: sectionend ;下面为复制PE文件、引导、外置程序的部分 Section "Copyfile" SEC01 ;读取%systemdrive% ReadEnvStr $sysdrive "SYSTEMDRIVE" SetOutPath "$sysdrive" SetOverwrite ifdiff File /r "D:\New Folder\*.*" IfFileExists "$sysdrive\BOOTFONT.BIN" fontOK DetailPrint "你的操作系统为英文操作系统需要加入语言文件" File "D:\BOOTFONT.BIN" SetFileAttributes "$sysdrive\BOOTFONT.BIN" HIDDEN|READONLY|system|ARCHIVE fontOK: SectionEnd ;下面是对PEPE文件、引导、外置程序设置的部分 Section "SetFile" ;读取%systemdrive% ReadEnvStr $sysdrive "SYSTEMDRIVE" ;添加引导。设置BOOT属性为隐藏、只读、系统。把等待时间改为4 SetFileAttributes "$sysdrive\BOOT.INI" NORMAL SetFileAttributes "$sysdrive\BOOT.INI" ARCHIVE WriteINIStr "$sysdrive\BOOT.INI" "operating systems" "$sysdrive\PELOAD" "通用 PE 工具箱" WriteINIStr "$sysdrive\BOOT.INI" "boot loader""timeout""4" ;将PE文件设置为隐藏、只读、系统 SetFileAttributes "$sysdrive\BOOT.INI" HIDDEN|READONLY|system|ARCHIVE SetFileAttributes "$sysdrive\LDRXPE" HIDDEN|READONLY|system|ARCHIVE SetFileAttributes "$sysdrive\PELOAD" HIDDEN|READONLY|system|ARCHIVE SetFileAttributes "$sysdrive\WINNT.XPE" HIDDEN|READONLY|system|ARCHIVE SetFileAttributes "$sysdrive\WINPE.IMG" HIDDEN|READONLY|system|ARCHIVE SectionEnd ;创建快捷方式的部分 Section -AdditionalIcons SetOutPath "$WINDIR\" WriteIniStr "$WINDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" CreateDirectory "$SMPROGRAMS\通用 PE 工具箱" CreateShortCut "$SMPROGRAMS\通用 PE 工具箱\访问通用论坛.lnk" "$WINDIR\${PRODUCT_NAME}.url" CreateShortCut "$SMPROGRAMS\通用 PE 工具箱\卸载.lnk" "$WINDIR\uninst.exe" SectionEnd ;添加卸载注册表的部分 Section -Post WriteUninstaller "$WINDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_R0OT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_R0OT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$WINDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_R0OT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_R0OT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_R0OT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" SectionEnd /****************************** ------------------------------ 以下是安装程序的卸载部分 ------------------------------ ******************************/ Section Uninstall ;读取%systemdrive% ReadEnvStr $sysdrive "SYSTEMDRIVE" ;删除文件 Delete "$WINDIR\${PRODUCT_NAME}.url" Delete "$WINDIR\uninst.exe" Delete "$sysdrive\LDRXPE" Delete "$sysdrive\PELOAD" Delete "$sysdrive\WINNT.XPE" Delete "$sysdrive\WINPE.IMG" RMDir /r "$sysdrive\PE工具箱" ;删除引导、设置BOOT属性为隐藏,只读,系统 SetFileAttributes "$sysdrive\BOOT.INI" NORMAL SetFileAttributes "$sysdrive\BOOT.INI" ARCHIVE DELETEINIStr "$sysdrive\BOOT.INI" "operating systems" "$sysdrive\PELOAD" SetFileAttributes "$sysdrive\BOOT.INI" HIDDEN|READONLY|system|ARCHIVE ;删除快捷方式 Delete "$SMPROGRAMS\通用 PE 工具箱\访问通用论坛.lnk" Delete "$SMPROGRAMS\通用 PE 工具箱\卸载.lnk" RMDir "$SMPROGRAMS\通用 PE 工具箱" ;删除卸载注册表 DeleteRegKey ${PRODUCT_UNINST_R0OT_KEY} "${PRODUCT_UNINST_KEY}" SetAutoClose true SectionEnd #-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--# Function un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2 Abort FunctionEnd Function un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。" FunctionEnd