U盘安装PE启动通用安装器源码及教程--开源大礼
我写了很多的U盘启动安装软件,包括系统安装,系统维护安装的工具,受到网友大量下载和关注。
今天将其中一个最满意的作品源码公开,
帮助更多的的爱好者可以自己制作属于你自己的第一个软件。
通用一键U盘PE安装器 USB2PE.exe源码
我就有这样的魄力愿意公开自己的源码,让知识快速传播出去! 我认为知识是通过开源来传承的。
教程很简单,我都在源码里加了注析,一看就懂,一学就会,一碰就做。
首先您下载一个NSIS编译器中文版,
推荐下载吧的 Nullsoft Scriptable Install System(nsis定制安装程序)V2.45汉化增强版 http://www.xiazaiba.com/html/177.html
然后安装,然后下载我的源码,然后按下图对着nsi文件右键编译就可以生成exe安装器。
##神雕teasiu开源大礼,作者 teasiu@163.com ##让菜鸟都可以制作自己的软件
##您可以任意修改本代码,但是请保留原作者信息。 ##
!define NAME \!define DISTRO \!define FILENAME \!define VERSION \
!define MUI_ICON \
RequestExecutionLevel highest ;设置用户最高权限 SetCompressor LZMA ;压缩格式 CRCCheck On
XPStyle on ;如果xp系统使用时,适应xp的风格 ShowInstDetails show
BrandingText \通用安装器 神雕teasiu作品\
CompletedText \安装结束,欢迎使用和收藏本工具! --神雕teasiu\
InstallButtonText \创 建\将先一步按钮改名为创建
Name \
OutFile \生成的exe文件名
!include \!include \!include \
!include \磁盘列表 ; 页面头设置
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP \!define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
!define MUI_HEADERIMAGE_RIGHT ;右边显示logo图标,左边则改为LEFT
; 定义各项变量 Var DestDriveTxt Var DestDrive Var DestDisk
Var LabelDrivePageText Var LabelDriveSelect Var Format Var FormatMe
Var Hddmode ;在这个例子里我换成了syslinux模式 Var Zipmode ;在这个例子里我换成了grub4dos模式 Var HddmodeMe Var ZipmodeMe Var Warning Var Soft Var Link Var Links Var Image Var hImage Var Iso
Var ISOFileTxt Var ISOSelection Var TheISO Var ISOTest Var ISOFile var BootDir
Page custom drivePage ;只定义了一页
!define MUI_INSTFILESPAGE_COLORS \; Instfiles page
!define MUI_TEXT_INSTALLING_TITLE $(Install_Title)
!define MUI_TEXT_INSTALLING_SUBTITLE $(Install_SubTitle) !define MUI_TEXT_FINISH_SUBTITLE $(Install_Finish_Sucess) !insertmacro MUI_PAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE \仅支持中文
LangString DrivePage_Title ${LANG_SIMPCHINESE} \【PE2USB】USB通用PE安装器\LangString DrivePage_Title2 ${LANG_SIMPCHINESE} \先插入一个USB盘,然后再打开本软件进行安装.\
LangString DrivePage_Text ${LANG_SIMPCHINESE} \本工具将使您的U盘完美启动.\LangString DrivePage_Input ${LANG_SIMPCHINESE} \第一步:点击下拉菜单选择您的U盘\
LangString Soft_Text ${LANG_SIMPCHINESE} \第二步:选择您的ISO内置的启动引导模式。必选。\
LangString Iso_Text ${LANG_SIMPCHINESE} \第三步:选择您的ISO镜像文件。\
LangString WarningPage_Text ${LANG_SIMPCHINESE} \注意:请确保U盘资料已备份。原资料将被完全覆写并不可恢复!\
LangString Creation ${LANG_SIMPCHINESE} \创建启动和解压ISO镜像文件到U盘,请稍后\
LangString Install_Title ${LANG_SIMPCHINESE} \安装中 ${DISTRO}\
LangString Install_SubTitle ${LANG_SIMPCHINESE} \请稍后 ${NAME} 安装 ${DISTRO} 到 $DestDisk\
LangString Install_Finish_Sucess ${LANG_SIMPCHINESE} \${NAME} 已经完成安装${DISTRO}到$DestDisk\
LangString IsoFile ${LANG_SIMPCHINESE} \镜像文件|*.iso\
LangString Syslinux_Warning ${LANG_SIMPCHINESE} \一个错误 ($R8) 发生在当安装syslinux时.$\\r$\\n您的USB驱动器将不可启动..$\\r$\\n建议您更换U盘或格式化该盘后再试一次。\
LangString grub4dos_Warning ${LANG_SIMPCHINESE} \一个错误 ($R8) 发生在当安装grub4dos时.$\\r$\\n您的USB驱动器将不可启动..$\\r$\\n建议您更换U盘或格式化该盘后再试一次。\
Function .onInit InitPluginsDir
SetOutPath \开始时将所有资源调进临时文件夹以便后面直接调用 File /r \FunctionEnd
Function drivePage
!insertmacro MUI_HEADER_TEXT $(DrivePage_Title) $(DrivePage_Title2) nsDialogs::Create 1018 ${If} $DestDrive == \
GetDlgItem $6 $HWNDPARENT 1 ; 控制下一步的句柄
EnableWindow $6 0 ; 关闭下一步按钮 ${EndIf}
; 创建bmp广告位图
${NSD_CreateBitmap} 75% 0 20% 100% \Pop $Image
${NSD_SetImage} $Image $PLUGINSDIR\\ad.bmp $hImage
${NSD_CreateLabel} 0 0 70% 30 $(DrivePage_Text) Pop $LabelDrivePageText
${NSD_CreateLabel} 0 20 70% 15 $(DrivePage_Input) Pop $LabelDriveSelect
SetCtlColors $LabelDriveSelect /Branding 0000BD ; 蓝色字体
;创建下拉菜单
${NSD_CreateDroplist} 0 40 30% 25 \Pop $DestDriveTxt
${NSD_OnChange} $DestDriveTxt db_select.onchange
${GetDrives} \表示仅显示移动磁盘即U盘, HDD表示显示本地磁盘即硬盘, ALL表示显示所有磁盘 ${If} $DestDrive != \
${NSD_CB_SelectString} $DestDriveTxt $DestDrive ${EndIf}
; 增加帮助或更新网址链接
${NSD_CreateLink} 85% 190 15% 14 \软件更新\Pop $Link
${NSD_OnClick} $Link onClickMyLink ; 格式化选项
${NSD_CreateButton} 32% 38 38% 22 \可选)FAT32格式化此U盘\Pop $Format
${NSD_OnClick} $Format FormatIt ; 说明文字
${NSD_CreateLabel} 0 70 70% 15 $(Soft_Text) ;软件内容,括号里面是调回上面的中文文字 Pop $Soft
SetCtlColors $Soft /Branding 0000BD ;蓝色
${NSD_CreateLabel} 0 115 70% 15 $(Iso_Text) ;内容 Pop $Iso
SetCtlColors $Iso /Branding 0000BD ;蓝色
${NSD_CreateText} 0 135 50% 20 \浏览已下载的*.iso文档并选择\Pop $ISOFileTxt
${NSD_CreateBrowseButton} 53% 135 65 20 \浏览\