!addincludedir"include"VarMSG;MSG变量必须定义,而且在最前面,否则WndProc::onCallback不工作,插件中需要这个消息变量,用于记录消息信息VarDialog;Dialog变量也需要定义,他可能是NSIS默认的对话框变量用于保存窗体中控件的信息VarBGImage;背景大图VarImageHandleVarBGImage1;背景大图VarImageHandle1;VarBGImage2;背景大图;VarImageHandle2;VarSTATE;VarWarningFormVarTxt_BrowserVarbtn_BrowserVarbtn_inVarbtn_insVarbtn_backVarbtn_CloseVarbtn_instetupVarbtn_instendVarbtn_instend1Varbtn_LicensebackVarbtn_GracenotebackVarTxt_XllicenseVarRtf_licenseVarTxt_GracenoteVarRtf_GracenoteVarTxt_jiVarCkbox0VarCkbox1VarCkbox1_StateVarCkbox2VarCkbox2_StateVarCkbox3VarCkbox3_StateVarckbox4Varckbox5;---------------------------全局编译脚本预定义的常量-----------------------------------------------------!includex64.nsh!includeWinVer.nsh!definePRODUCT_NAME"Scale3DC汽车衡称重管理系统"!definePRODUCT_VERSION"2018.0.0.0"!definePRODUCT_PUBLISHER"Tencent"!definePRODUCT_UNINST_KEY"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"!definePRODUCT_UNINST_ROOT_KEY"HKLM";---------------------------设置软件压缩类型(也可以通过外面编译脚本控制)------------------------------------SetCompressorlzmaSetCompressforce;应用程序显示名字Name"${PRODUCT_NAME}${PRODUCT_VERSION}";应用程序输出文件名OutFile"${PRODUCT_NAME}.exe";安装路径!defineDIR"$PROGRAMFILES\Scale3DC";请在这里定义路径InstallDir"${DIR}"InstallDirRegKeyHKLM"${PRODUCT_UNINST_KEY}""UninstallString";请求提升管理员权限RequestExecutionLeveladminShowInstDetailsnevershow;设置是否显示安装详细信息。ShowUnInstDetailsnevershow;设置是否显示删除详细信息。;MUI预定义常量;!defineMUI_ABORTWARNING;退出提示;!defineMUI_CUSTOMFUNCTION_ABORTABORT;MUI_CUSTOMFUNCTION_ABORT;安装图标的路径名字!defineMUI_ICON"Icon\install.ico";卸载图标的路径名字!defineMUI_UNICON"Icon\win-uninstall.ico";使用的UI!defineMUI_UI"UI\mod.exe";使用ReserveFile是加快安装包展开速度,具体请看帮助ReserveFile"images\bg.bmp"ReserveFile"images\bg2.bmp"ReserveFile"images\bg3.bmp"ReserveFile"images\browse.bmp"ReserveFile"images\close.bmp"ReserveFile"images\custom.bmp"ReserveFile"images\empty_bg.bmp"ReserveFile"images\express.bmp"ReserveFile"images\finish.bmp"ReserveFile"images\full_bg.bmp"ReserveFile"images\onekey.bmp"ReserveFile"images\strongbtn.bmp"ReserveFile"images\weakbtn.bmp";轮展数据ReserveFile"images\Slides.dat"ReserveFile"images\InstallingBG01.png"ReserveFile"images\InstallingBG02.png"ReserveFile"images\InstallingBG03.png"ReserveFile"images\InstallingBG04.png";DLLReserveFile`${NSISDIR}\Plugins\x86-ansi\nsDialogs.dll`ReserveFile`${NSISDIR}\Plugins\x86-ansi\nsWindows.dll`ReserveFile`${NSISDIR}\Plugins\x86-ansi\SkinBtn.dll`ReserveFile`${NSISDIR}\Plugins\x86-ansi\SkinProgress.dll`ReserveFile`${NSISDIR}\Plugins\x86-ansi\System.dll`ReserveFile`${NSISDIR}\Plugins\x86-ansi\WndProc.dll`ReserveFile`${NSISDIR}\Plugins\x86-ansi\nsisSlideshow.dll`ReserveFile`${NSISDIR}\Plugins\x86-ansi\FindProcDLL.dll`;------MUI现代界面定义(1.67版本以上兼容)------!include"MUI.nsh"!include"WinCore.nsh"!include"nsWindows.nsh"!include"LogicLib.nsh"!include"WinMessages.nsh"!include"LoadRTF.nsh"!defineMUI_CUSTOMFUNCTION_GUIINITonGUIInit;自定义页面PagecustomPage.1Page.1leave;许可协议页面;!defineMUI_LICENSEPAGE_CHECKBOX;安装目录选择页面;!insertmacroMUI_PAGE_DIRECTORY;安装过程页面!defineMUI_PAGE_CUSTOMFUNCTION_SHOWInstFilesPageShow!insertmacroMUI_PAGE_INSTFILES;安装完成页面PagecustomPage.3;这个不要删除,否则自动跳转出问题PagecustomPage.4;安装卸载过程页面!insertmacroMUI_UNPAGE_CONFIRM!insertmacroMUI_UNPAGE_INSTFILES!insertmacroMUI_UNPAGE_FINISH;安装界面包含的语言设置!insertmacroMUI_LANGUAGE"SimpChinese"VIProductVersion"0.0.0.0";←↓版本啦VIAddVersionKey/LANG=2052"ProductName""${PRODUCT_NAME}"VIAddVersionKey/LANG=2052"Comments""http://www.nbzycn.com/";请自己修改VIAddVersionKey/LANG=2052"CompanyName""Tencent"VIAddVersionKey/LANG=2052"LegalCopyright""Copyright(c)yu"VIAddVersionKey/LANG=2052"FileDescription""${PRODUCT_NAME}"VIAddVersionKey/LANG=2052"FileVersion""${PRODUCT_VERSION}";------------------------------------------------------MUI现代界面定义以及函数结束------------------------Function.onInitInitPluginsDir;初始化插件StrCpy$Ckbox1_State${BST_CHECKED}StrCpy$Ckbox2_State${BST_CHECKED}StrCpy$Ckbox3_State${BST_CHECKED}File`/ONAME=$PLUGINSDIR\bg.bmp``images\bg.bmp`;第一大背景File`/oname=$PLUGINSDIR\bg2.bmp``images\bg2.bmp`;第二大背景File`/oname=$PLUGINSDIR\bg3.bmp``images\bg3.bmp`;完成页背景File`/oname=$PLUGINSDIR\btn_onekey.bmp``images\onekey.bmp`;快速安装File`/oname=$PLUGINSDIR\btn_custom.bmp``images\custom.bmp`;自定义安装File`/oname=$PLUGINSDIR\btn_browse.bmp``images\browse.bmp`;浏览按钮File`/oname=$PLUGINSDIR\btn_strongbtn.bmp``images\strongbtn.bmp`;立即安装File`/oname=$PLUGINSDIR\btn_finish.bmp``images\finish.bmp`;安装完成File`/oname=$PLUGINSDIR\btn_weakbtn.bmp``images\weakbtn.bmp`;返回File`/oname=$PLUGINSDIR\btn_express.bmp``images\express.bmp`;立即体验File`/oname=$PLUGINSDIR\btn_Close.bmp``images\Close.bmp`;关闭;进度条皮肤File`/oname=$PLUGINSDIR\Progress.bmp``images\empty_bg.bmp`File`/oname=$PLUGINSDIR\ProgressBar.bmp``images\full_bg.bmp`;协议File`/oname=$PLUGINSDIR\license.rtf``rtf\license.rtf`File`/oname=$PLUGINSDIR\Gracenote.rtf``rtf\Gracenote.rtf`;初始化SkinBtn::Init"$PLUGINSDIR\btn_onekey.bmp"SkinBtn::Init"$PLUGINSDIR\btn_custom.bmp"SkinBtn::Init"$PLUGINSDIR\btn_browse.bmp"SkinBtn::Init"$PLUGINSDIR\btn_strongbtn.bmp"SkinBtn::Init"$PLUGINSDIR\btn_finish.bmp"SkinBtn::Init"$PLUGINSDIR\btn_weakbtn.bmp"SkinBtn::Init"$PLUGINSDIR\btn_express.bmp"SkinBtn::Init"$PLUGINSDIR\btn_Close.bmp"FunctionEndFunctiononGUIInit;检查重复运行System::Call'kernel32::CreateMutexA(i0,i0,t"Scale3DC")i.r1?e'Pop$R1;;;;$$$$$安装程序已经运行StrCmp$R10+3MessageBoxMB_OK|MB_ICONINFORMATION|MB_TOPMOST"程序已经在运行。"Abort;检测是否正在运行RETRY:FindProcDLL::FindProc"Scalea3DC.exe";检测的运行进程名称StrCmp$R010+3MessageBoxMB_RETRYCANCEL|MB_ICONINFORMATION|MB_TOPMOST'检测到"${PRODUCT_NAME}"正在运行,请先关闭后重试,或者点击"取消"退出!'IDRETRYRETRYQuit;消除边框System::Call`user32::SetWindowLong(i$HWNDPARENT,i${GWL_STYLE},0x9480084C)i.R0`;隐藏一些既有控件GetDlgItem$0$HWNDPARENT1034ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1035ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1036ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1037ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1038ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1039ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1256ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1028ShowWindow$0${SW_HIDE}${NSW_SetWindowSize}$HWNDPARENT589439;改变主窗体大小System::CallUser32::GetDesktopWindow()i.R0;圆角System::Alloc16System::Calluser32::GetWindowRect(i$HWNDPARENT,isR0)System::Call*$R0(i.R1,i.R2,i.R3,i.R4)IntOp$R3$R3-$R1IntOp$R4$R4-$R2System::Callgdi32::CreateRoundRectRgn(i0,i0,iR3,iR4,i4,i4)i.r0System::Calluser32::SetWindowRgn(i$HWNDPARENT,ir0,i1)System::Free$R0;GetDlgItem$R0$HWNDPARENT1044;System::Call"user32::MoveWindow(iR0,i0,i0,i374,i153)ir2"FunctionEnd;处理无边框移动FunctiononGUICallback${If}$MSG=${WM_LBUTTONDOWN}SendMessage$HWNDPARENT${WM_NCLBUTTONDOWN}${HTCAPTION}$0${EndIf}FunctionEndFunctionPage.1GetDlgItem$0$HWNDPARENT1ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT2ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT3ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1990ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1991ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT1992ShowWindow$0${SW_HIDE}nsDialogs::Create1044Pop$0${If}$0==errorAbort${EndIf}SetCtlColors$0""transparent;背景设成透明${NSW_SetWindowSize}$0588438;改变Page大小;读取RTF的文本框nsDialogs::CreateControl"RichEdit20A"\${ES_READONLY}|${WS_VISIBLE}|${WS_CHILD}|${WS_TABSTOP}|${WS_VSCROLL}|${ES_MULTILINE}|${ES_WANTRETURN}\${WS_EX_STATICEDGE}16u28u360u229u''Pop$rtf_License${LoadRTF}'$PLUGINSDIR\license.rtf'$rtf_LicenseShowWindow$rtf_License${SW_HIDE}nsDialogs::CreateControl"RichEdit20A"\${ES_READONLY}|${WS_VISIBLE}|${WS_CHILD}|${WS_TABSTOP}|${WS_VSCROLL}|${ES_MULTILINE}|${ES_WANTRETURN}\${WS_EX_STATICEDGE}16u28u360u229u''Pop$Rtf_Gracenote${LoadRTF}'$PLUGINSDIR\Gracenote.rtf'$Rtf_GracenoteShowWindow$Rtf_Gracenote${SW_HIDE};协议确定按钮${NSD_CreateButton}180u263u5530"确定"Pop$btn_LicensebackSkinBtn::Set/IMGID=$PLUGINSDIR\btn_weakbtn.bmp$btn_LicensebackGetFunctionAddress$3LicensebackSkinBtn::onClick$btn_Licenseback$3SetCtlColors$btn_Licenseback7F7F7FtransparentShowWindow$btn_Licenseback${SW_HIDE};第三方协议确定按钮${NSD_CreateButton}310u263u5530"确定"Pop$btn_GracenotebackSkinBtn::Set/IMGID=$PLUGINSDIR\btn_weakbtn.bmp$btn_GracenotebackGetFunctionAddress$3GracenotebackSkinBtn::onClick$btn_Gracenoteback$3SetCtlColors$btn_Gracenoteback7F7F7FtransparentShowWindow$btn_Gracenoteback${SW_HIDE};自定义安装按钮${NSD_CreateButton}310u263u9817""Pop$btn_insSkinBtn::Set/IMGID=$PLUGINSDIR\btn_custom.bmp$btn_insGetFunctionAddress$3onClickintSkinBtn::onClick$btn_ins$3;快速安装${NSD_CreateButton}126u204u25264""Pop$btn_inSkinBtn::Set/IMGID=$PLUGINSDIR\btn_onekey.bmp$btn_inGetFunctionAddress$3onClickinsSkinBtn::onClick$btn_in$3;最小化按钮;${NSD_CreateButton}350u3u2222"";Pop$btn_mini;SkinBtn::Set/IMGID=$PLUGINSDIR\btn_mini.bmp$btn_mini;GetFunctionAddress$3onClickmini;SkinBtn::onClick$btn_mini$3;关闭按钮${NSD_CreateButton}372u8u2420""Pop$btn_CloseSkinBtn::Set/IMGID=$PLUGINSDIR\btn_Close.bmp$btn_CloseGetFunctionAddress$3ABORTSkinBtn::onClick$btn_Close$3;立即安装${NSD_CreateButton}284u260u8226"立即安装"Pop$btn_instetupSkinBtn::Set/IMGID=$PLUGINSDIR\btn_strongbtn.bmp$btn_instetupGetFunctionAddress$3onClickinsSkinBtn::onClick$btn_instetup$3SetCtlColors$btn_instetupFFFFFFtransparentShowWindow$btn_instetup${SW_HIDE};返回${NSD_CreateButton}344u260u5626"返回"Pop$btn_backSkinBtn::Set/IMGID=$PLUGINSDIR\btn_weakbtn.bmp$btn_backGetFunctionAddress$3onClickBackSkinBtn::onClick$btn_back$3SetCtlColors$btn_back7F7F7FtransparentShowWindow$btn_back${SW_HIDE}#------------------------------------------#许可协议#------------------------------------------${NSD_CreateCheckbox}17u265u63u12u"同意臻誉的"Pop$Ckbox0SetCtlColors$Ckbox0""FFFFFF${NSD_Check}$Ckbox0${NSD_OnClick}$Ckbox0Chklicense${NSD_CreateLabel}130u267u10u12u"及"Pop$txt_jiSetCtlColors$txt_ji""FFFFFF;前景色,背景设成透明${NSD_CreateLink}80u267u48u10u"用户许可协议"Pop$Txt_XllicenseSetCtlColors$Txt_Xllicense5ba900FFFFFF${NSD_OnClick}$Txt_Xllicensexllicense${NSD_CreateLink}140u267u60u10u"第三方用户协议"Pop$Txt_GracenoteSetCtlColors$Txt_Gracenote5ba900FFFFFF${NSD_OnClick}$Txt_GracenoteGracenote#------------------------------------------#可选项1#------------------------------------------${NSD_CreateCheckbox}17u216u80u12u"创建桌面图标"Pop$Ckbox1SetCtlColors$Ckbox1""FFFFFF;前景色,背景设成透明ShowWindow$Ckbox1${SW_HIDE}${NSD_Check}$Ckbox1#------------------------------------------#可选项2#------------------------------------------;${NSD_CreateCheckbox}130u216u80u12u"添加到快速启动栏";Pop$Ckbox2;SetCtlColors$Ckbox2""FFFFFF;前景色,背景设成透明;ShowWindow$Ckbox2${SW_HIDE};${NSD_Check}$Ckbox2#------------------------------------------#可选项3#------------------------------------------;${NSD_CreateCheckbox}240u216u90u12u"设为默认音乐播放器";Pop$Ckbox3;SetCtlColors$Ckbox3""FFFFFF;前景色,背景设成透明;ShowWindow$Ckbox3${SW_HIDE};${NSD_SetState}$Checkbox1${BST_CHECKED};创建安装目录输入文本框${NSD_CreateText}21u183u290u22u"${DIR}"Pop$Txt_BrowserSetCtlColors$Txt_Browser""FFFFFF;背景设成透明;${NSD_AddExStyle}$Txt_Browser${WS_EX_WINDOWEDGE}CreateFont$1"tahoma""10""500"SendMessage$Txt_Browser${WM_SETFONT}$11ShowWindow$Txt_Browser${SW_HIDE};创建更改路径文件夹按钮${NSD_CreateButton}312u273U7636"浏览..."Pop$btn_BrowserSkinBtn::Set/IMGID=$PLUGINSDIR\btn_browse.bmp$btn_BrowserGetFunctionAddress$3onClickSelectPathSkinBtn::onClick$btn_Browser$3SetCtlColors$btn_Browser7F7F7Ftransparent;前景色,背景设成透明ShowWindow$btn_Browser${SW_HIDE}${NSD_CreateBitmap}00100%100%""Pop$BGImage1${NSD_SetImage}$BGImage1$PLUGINSDIR\bg2.bmp$ImageHandle1ShowWindow$BGImage1${SW_HIDE};贴背景大图${NSD_CreateBitmap}00100%100%""Pop$BGImage${NSD_SetImage}$BGImage$PLUGINSDIR\bg.bmp$ImageHandleGetFunctionAddress$0onGUICallbackWndProc::onCallback$BGImage$0;处理无边框窗体移动WndProc::onCallback$BGImage1$0;处理无边框窗体移动nsDialogs::Show${NSD_FreeImage}$ImageHandle${NSD_FreeImage}$ImageHandle1FunctionEndFunctionPage.1leave${NSD_GetState}$Ckbox1$Ckbox1_State${NSD_GetState}$Ckbox2$Ckbox2_State${NSD_GetState}$Ckbox3$Ckbox3_StateFunctionEndFunctionInstFilesPagePROGetDlgItem$0$HWNDPARENT1ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT2ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT3FunctionEndFunctionInstFilesPageShowFindWindow$R2"#32770"""$HWNDPARENTShowWindow$0${SW_HIDE}GetDlgItem$1$R21027ShowWindow$1${SW_HIDE};存入轮展图片File'/oname=$PLUGINSDIR\Slides.dat''images\Slides.dat'File'/oname=$PLUGINSDIR\InstallingBG01.png''images\InstallingBG01.png'File'/oname=$PLUGINSDIR\InstallingBG02.png''images\InstallingBG02.png'File'/oname=$PLUGINSDIR\InstallingBG03.png''images\InstallingBG03.png'File'/oname=$PLUGINSDIR\InstallingBG04.png''images\InstallingBG04.png'StrCpy$R0$R2;改变页面大小,不然贴图不能全页System::Call"user32::MoveWindow(iR0,i0,i0,i588,i438)ir2"GetFunctionAddress$0onGUICallbackWndProc::onCallback$R0$0;处理无边框窗体移动GetDlgItem$R0$R21004;设置进度条位置System::Call"user32::MoveWindow(iR0,i30,i302,i537,i12)ir2"GetDlgItem$R1$R21006;进度条上面的标签SetCtlColors$R1""FFFFFF;背景设成F6F6F6,注意颜色不能设为透明,否则重叠System::Call"user32::MoveWindow(iR1,i30,i275,i290,i12)ir2"GetDlgItem$R8$R21016;SetCtlColors$R8""F6F6F6;背景设成F6F6F6,注意颜色不能设为透明,否则重叠System::Call"user32::MoveWindow(iR8,i0,i0,i588,i216)ir2"FindWindow$R2"#32770"""$HWNDPARENT;获取1995并设置图片GetDlgItem$R0$R21995System::Call"user32::MoveWindow(iR0,i0,i0,i498,i373)ir2"${NSD_SetImage}$R0$PLUGINSDIR\bg2.bmp$ImageHandle;这里是给进度条贴图FindWindow$R2"#32770"""$HWNDPARENTGetDlgItem$5$R21004SkinProgress::Set$5"$PLUGINSDIR\ProgressBar.bmp""$PLUGINSDIR\Progress.bmp"FunctionEnd;完成页面FunctionPage.3GetDlgItem$0$HWNDPARENT1ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT2ShowWindow$0${SW_HIDE}GetDlgItem$0$HWNDPARENT3ShowWindow$0${SW_HIDE}nsDialogs::Create1044Pop$0${If}$0==errorAbort${EndIf}SetCtlColors$0""transparent;背景设成透明${NSW_SetWindowSize}$0588438;改变Page大小${NSD_CreateCheckbox}20u160u166u10u"立刻启动Scale3DC称重软件"Pop$Ckbox4SetCtlColors$Ckbox4""FFFFFF;ShowWindow$Ckbox4${SW_HIDE};如果不需要可以使用这行隐藏;${NSD_Check}$Ckbox4;默认勾选;${NSD_CreateCheckbox}20u180u200u10u"推荐您安装QQ游戏,全球最大在线休闲游戏平台";Pop$ckbox5;SetCtlColors$ckbox5""FFFFFF;ShowWindow$ckbox5${SW_HIDE};如果不需要可以使用这行隐藏;${NSD_Check}$ckbox5;默认勾选${NSD_CreateLink}277u122u56u10u"臻誉官网下载"Pop$1SetCtlColors$1FFFFFFB0B18D${NSD_OnClick}$1onClickmusic;立即体验${NSD_CreateButton}86u226u16054""Pop$btn_instendSkinBtn::Set/IMGID=$PLUGINSDIR\btn_express.bmp$btn_instendGetFunctionAddress$3onClickexpressSkinBtn::onClick$btn_instend$3;安装完成${NSD_CreateButton}200u226u16054""Pop$btn_instend1SkinBtn::Set/IMGID=$PLUGINSDIR\btn_finish.bmp$btn_instend1GetFunctionAddress$3onClickendSkinBtn::onClick$btn_instend1$3;贴背景大图${NSD_CreateBitmap}00100%100%""Pop$BGImage${NSD_SetImage}$BGImage$PLUGINSDIR\bg3.bmp$ImageHandleGetFunctionAddress$0onGUICallbackWndProc::onCallback$BGImage$0;处理无边框窗体移动nsDialogs::Show${NSD_FreeImage}$ImageHandleFunctionEndFunctionPage.4FunctionEndSectionMainSetupDetailPrint"正在安装..."Sleep1000SetDetailsPrintNone;不显示信息nsisSlideshow::Show/NOUNLOAD/auto=$PLUGINSDIR\Slides.datSleep500;在安装程序里暂停执行"休眠时间(单位为:ms)"毫秒。"休眠时间(单位为:ms)"可以是一个变量,例如"$0"或一个数字,例如"666"。SetOutPath$INSTDIR;打包实体内容File/r"C:\ProgramFiles(x86)\Scale3DC\*.*";注册组件RegDLL"$INSTDIR\grdes6.dll"RegDLL"$INSTDIR\gregn6.dll";Storeinstallationfolder保存安装文件夹件WriteRegStrHKCU"Software\Scale3DC"""$INSTDIR;在桌面上建立快捷方式。CreateShortCut"$DESKTOP\Scale3DC称重软件.lnk""$INSTDIR\Scale3DC.exe"CreateShortCut"$DESKTOP\ZYCOMM串口调试工具v4.0.lnk""$INSTDIR\ZYCOMM\ZYCOMM.exe";-----------------------------------------------------;Createuninstaller创建卸载程序${If}${RunningX64}${DisableX64FSRedirection}WriteUninstaller"$INSTDIR\uninst.exe"${EnableX64FSRedirection}${else}WriteUninstaller"$INSTDIR\uninst.exe"${endif}WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""DisplayIcon""$INSTDIR\uninst.exe"WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""DisplayName""$(^Name)"WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""UninstallString""$INSTDIR\uninst.exe"WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""DisplayVersion""${PRODUCT_VERSION}"WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""URLInfoAbout""${PRODUCT_WEB_SITE}"Sleep50Sleep50Sleep50Sleep500Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep500Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep500Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep500Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50Sleep50/*${If}$Ckbox1_State==1DetailPrint"现在是选中状态,这里可以写代码"${EndIf}*/;MessageBoxMB_OK'判断选中项,选中为1,否则0:$\r$\n创建桌面图标:安装目录:$INSTDIR'nsisSlideshow::StopSetAutoClosetrueSectionEndSection-AdditionalIconsSetOutPath$INSTDIRWriteIniStr"$INSTDIR\${PRODUCT_NAME}.url""InternetShortcut""URL""${PRODUCT_WEB_SITE}"CreateDirectory"$SMPROGRAMS\Scale3DC"CreateShortCut"$SMPROGRAMS\Scale3DC\Scale3DC.lnk""$INSTDIR\${PRODUCT_NAME}.url"CreateShortCut"$SMPROGRAMS\Scale3DC\Uninstall.lnk""$INSTDIR\uninst.exe"SectionEndSection-PostWriteUninstaller"$INSTDIR\uninst.exe"WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""DisplayName""$(^Name)"WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""UninstallString""$INSTDIR\uninst.exe"WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""DisplayVersion""${PRODUCT_VERSION}"WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""URLInfoAbout""${PRODUCT_WEB_SITE}"WriteRegStr${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}""Publisher""${PRODUCT_PUBLISHER}"SectionEndFunctionABORTMessageBoxMB_ICONQUESTION|MB_YESNO|MB_ICONSTOP'您确定要退出"Scale3DC2018"安装程序?'IDNOCANCELSendMessage$hwndparent${WM_CLOSE}00CANCEL:AbortFunctionEnd;处理页面跳转的命令FunctionRelGotoPageIntCmp$R900MoveMoveStrCmp$R9"X"0MoveStrCpy$R9"120"Move:SendMessage$HWNDPARENT"0x408""$R9"""FunctionEndFunctiononClickins${NSD_GetText}$Txt_Browser$R0;获得设置的安装路径;判断目录是否正确ClearErrorsCreateDirectory"$R0"IfErrors0+3MessageBoxMB_ICONINFORMATION|MB_OK"'$R0'安装目录不存在,请重新设置。"ReturnStrCpy$INSTDIR$R0;保存安装路径StrCpy$R91;GotothenextpageCallRelGotoPageAbortFunctionEnd;当单击自定义安装后隐藏和显示一部分控件FunctiononClickintShowWindow$BGImage${SW_HIDE}ShowWindow$Ckbox0${SW_HIDE}ShowWindow$Txt_Xllicense${SW_HIDE}ShowWindow$Txt_Gracenote${SW_HIDE}ShowWindow$Txt_ji${SW_HIDE}ShowWindow$btn_in${SW_HIDE}ShowWindow$btn_ins${SW_HIDE}ShowWindow$BGImage1${SW_SHOW}ShowWindow$btn_instetup${SW_SHOW}ShowWindow$btn_back${SW_SHOW}ShowWindow$Ckbox1${SW_SHOW}ShowWindow$Ckbox2${SW_SHOW}ShowWindow$Ckbox3${SW_SHOW}ShowWindow$btn_Browser${SW_SHOW}ShowWindow$Txt_Browser${SW_SHOW}FunctionEnd;点击返回时隐藏显示部分控件FunctiononClickBackShowWindow$BGImage1${SW_HIDE}ShowWindow$BGImage${SW_SHOW}ShowWindow$Ckbox0${SW_SHOW}ShowWindow$Txt_Xllicense${SW_SHOW}ShowWindow$Txt_Gracenote${SW_SHOW}ShowWindow$Txt_ji${SW_SHOW}ShowWindow$btn_in${SW_HIDE}ShowWindow$btn_ins${SW_HIDE}ShowWindow$btn_in${SW_SHOW}ShowWindow$btn_ins${SW_SHOW}ShowWindow$BGImage1${SW_HIDE}ShowWindow$btn_instetup${SW_HIDE}ShowWindow$btn_back${SW_HIDE}ShowWindow$Ckbox1${SW_HIDE}ShowWindow$Ckbox2${SW_HIDE}ShowWindow$Ckbox3${SW_HIDE}ShowWindow$btn_Browser${SW_HIDE}ShowWindow$Txt_Browser${SW_HIDE}FunctionEnd#------------------------------------------#许可协议#------------------------------------------FunctionxllicenseShowWindow$Ckbox0${SW_HIDE}ShowWindow$Txt_Xllicense${SW_HIDE}ShowWindow$Txt_Gracenote${SW_HIDE}ShowWindow$Txt_ji${SW_HIDE}ShowWindow$btn_in${SW_HIDE}ShowWindow$btn_ins${SW_HIDE}ShowWindow$rtf_License${SW_SHOW}ShowWindow$btn_Licenseback${SW_SHOW}ShowWindow$rtf_License${SW_SHOW}FunctionEnd;点击协议下方的按钮执行FunctionLicensebackShowWindow$Ckbox0${SW_SHOW}ShowWindow$Txt_Xllicense${SW_SHOW}ShowWindow$Txt_Gracenote${SW_SHOW}ShowWindow$Txt_ji${SW_SHOW}ShowWindow$btn_in${SW_SHOW}ShowWindow$btn_ins${SW_SHOW}ShowWindow$btn_ins${SW_SHOW}ShowWindow$btn_Licenseback${SW_HIDE}ShowWindow$rtf_License${SW_HIDE}ShowWindow$Rtf_Gracenote${SW_HIDE}FunctionEndFunctionGracenoteShowWindow$Ckbox0${SW_HIDE}ShowWindow$Txt_Xllicense${SW_HIDE}ShowWindow$Txt_Gracenote${SW_HIDE}ShowWindow$rtf_License${SW_HIDE}ShowWindow$Txt_ji${SW_HIDE}ShowWindow$btn_in${SW_HIDE}ShowWindow$btn_ins${SW_HIDE}ShowWindow$btn_Licenseback${SW_SHOW}ShowWindow$rtf_Gracenote${SW_SHOW}FunctionEnd;点击第三方协议下的确定按钮执行FunctionGracenotebackShowWindow$rtf_License${SW_HIDE}ShowWindow$Rtf_Gracenote${SW_HIDE}ShowWindow$btn_Gracenoteback${SW_HIDE}ShowWindow$Ckbox0${SW_SHOW}ShowWindow$Txt_Xllicense${SW_SHOW}ShowWindow$Txt_Gracenote${SW_SHOW}ShowWindow$Txt_ji${SW_SHOW}ShowWindow$btn_in${SW_SHOW}ShowWindow$btn_ins${SW_SHOW}ShowWindow$btn_ins${SW_SHOW}FunctionEndFunctiononClickmusicExecShell"open""http://www.nbzycn.com"FunctionEnd#------------------------------------------#是否选中许可协议判断#------------------------------------------FunctionChklicensePop$Ckbox0${NSD_GetState}$Ckbox0$0${If}$0==1EnableWindow$btn_ins1;对指定的窗口或控件是否允许键入0禁止EnableWindow$btn_in1${Else}EnableWindow$btn_ins0;对指定的窗口或控件是否允许键入0禁止EnableWindow$btn_in0${EndIf}FunctionEnd#--------------------------------------------------------#路径选择按钮事件,打开Windows系统自带的目录选择对话框#--------------------------------------------------------FunctiononClickSelectPath${NSD_GetText}$Txt_Browser$0nsDialogs::SelectFolderDialog"请选择${PRODUCT_NAME}安装目录:""$0"Pop$0${IfNot}$0==error${NSD_SetText}$Txt_Browser$0${EndIf}FunctionEnd;立即体验检测FunctiononClickexpress${NSD_GetState}$Ckbox4$0${If}$0==1;MessageBoxMB_OK'选中:立即启动Scale3DC称重软件';判断选中时的操作,实际代码需要自己修改ExecShell"open""$INSTDIR\Scale3DC.exe"${EndIf};${NSD_GetState}$Ckbox5$0;${if}$0=1;MessageBoxMB_OK'选中:推荐安装QQ游戏';判断选中时的操作,实际代码需要自己修改;${EndIf};Exec"$INSTDIR\qqmusic.exe";这个不需要选中也操作,即运行QQ音乐;MessageBoxMB_OK'运行Scale3DC称重软件';ExecShell"open""$INSTDIR\Scale3DC.exe"SendMessage$hwndparent${WM_CLOSE}00FunctionEnd;完成页面完成按钮FunctiononClickend${NSD_GetState}$Ckbox4$0${If}$0==1MessageBoxMB_OK'选中:开机自动启动';判断选中时的操作,实际代码需要自己修改ExecShell"open""$INSTDIR\Scale3DC.exe"${EndIf};${NSD_GetState}$Ckbox5$0;${if}$0=1;MessageBoxMB_OK'选中:推荐安装QQ游戏';判断选中时的操作,实际代码需要自己修改;${EndIf};ExecShell"open""$INSTDIR\Scale3DC.exe"SendMessage$hwndparent${WM_CLOSE}00FunctionEndSection"Uninstall";ADDYOUROWNFILESHERE...Delete"$INSTDIR\Uninstall.exe"Delete"$INSTDIR\*.*"Delete"$DESKTOP\Scale3DC称重软件.lnk"Delete"$DESKTOP\ZYCOMM串口调试工具v4.0.lnk"RMDir/r"$INSTDIR"DeleteRegKey${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}"DeleteRegKey/ifemptyHKLM"${PRODUCT_UNINST_KEY}"SectionEnd