设为首页 收藏本站

NSIS中文论坛

查看: 140|回复: 4

[求助] 新人,求助,这个安装包是如何实现的!

[复制链接]
  • TA的每日心情
    难过
    2018-4-11 04:24
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    9

    帖子

    46

    积分

    积分
    46
    QQ
    发表于 2018-4-11 03:56:58 | 显示全部楼层 |阅读模式


    最近也在学习软件打包,看见这个做得挺好的,请问一下大神们,这个如何实现。谢谢了》。。
    Capture1.PNG
    --------------------------------------------------
    Capture2.PNG
    -------------------------------------------------
    Capture3.PNG
    回复

    使用道具 举报

  • TA的每日心情

    2018-3-14 20:37
  • 签到天数: 65 天

    [LV.6]常住居民II

    92

    主题

    393

    帖子

    4566

    积分

    积分
    4566
    发表于 2018-4-12 09:07:58 | 显示全部楼层
    这不就是个自定义页面么?密码部分可参考http://www.flighty.cn/html/bushu/20140921_254.html
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2018-4-11 04:24
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    9

    帖子

    46

    积分

    积分
    46
    QQ
     楼主| 发表于 2018-4-13 02:30:21 | 显示全部楼层
    flighty 发表于 2018-4-12 09:07
    这不就是个自定义页面么?密码部分可参考http://www.flighty.cn/html/bushu/20140921_254.html
    ...

    谢谢啦,我解压了这个玩意,脚本不能编译,应该是缺少什么东西,一堆乱码了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-3-14 20:37
  • 签到天数: 65 天

    [LV.6]常住居民II

    92

    主题

    393

    帖子

    4566

    积分

    积分
    4566
    发表于 5 天前 | 显示全部楼层
    MaxDaniel 发表于 2018-4-13 02:30
    谢谢啦,我解压了这个玩意,脚本不能编译,应该是缺少什么东西,一堆乱码了 ...

    解出来的脚本不能直接用的……
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 18:01
  • 签到天数: 70 天

    [LV.6]常住居民II

    10

    主题

    29

    帖子

    1190

    积分

    积分
    1190
    发表于 前天 07:37 | 显示全部楼层
    在学,弄了一个礼拜,七拼八凑,脚本很乱,但大体与原安装界面相仿。原安装界面应该还用了BgImage插件,没有模仿。一则对我来说有点难,二则觉得没有必要,花里花俏的,并不美观也不实用。凡是Flighty和jiake等高手的代码和脚本都收集一下,慢慢看吧。

    #压缩设置
      SetCompressor /SOLID lzma
      SetCompressorDictSize 32
      SetDatablockOptimize on
      SetCompress auto

    Var Dialog
    Var Label
    Var Text

    !define Password "123"

    #头文件
      !include "MUI2.nsh"
      !include "UsefulLib.nsh"
      
    #界面相关
      !define MUI_ICON "CW.ico"
      !define MUI_HEADERIMAGE
      !define MUI_HEADERIMAGE_BITMAP "Image\header.bmp"
      !define MUI_WELCOMEFINISHPAGE_BITMAP "Image\bg.bmp"
      !define MUI_PAGE_CUSTOMFUNCTION_SHOW licshow
      !define MUI_CUSTOMFUNCTION_GUIINIT .MyGUIInit
      Page custom WelcomePage
      !insertmacro MUI_PAGE_LICENSE "Readme.rtf"
      ShowInstDetails show
      Page Custom PasswordPageShow PasswordPageLeave
      Page instfiles

    #相关宏
      !insertmacro MUI_LANGUAGE "SimpChinese"
    ChangeUI all "D:\NsisTest\modernhh.exe"
    BrandingText "W (hua2D0905@qq.com)汉化作品-编译时间:2018/3/25 14:14:39"

    #程序设置
      Caption "Camtasia 9.12.3011 完美汉化补丁 _20180325"
      OutFile "Camtasia汉化工具.exe"
      XPStyle on

    #程序执行前操作
      Section
      sectionend

      Function .oninit
      InitPluginsDir
        ;设置输出路径且当路径不存在时创建,设定当前的工作目录
        SetOutPath $PluginsDIR
        File /oname=$PLUGINSDIR\bg.bmp "Image\bg.bmp"
      Functionend

    #定义要创建的控件(ID不能重复,否则会产生未知错误!)
      ;定义关于按钮
      !ifndef IDC_BUTTON
      !define IDC_BUTTON 1190
      !endif
      ;定义链接
      !ifndef IDC_LINKER
      !define IDC_LINKER 1200
      !endif

      ;创建公共函数
      !macro MYMACRO un
      Function ${un}.AboutButton
        MessageBox MB_OK|MB_ICONINFORMATION "NSIS中文论坛 $\n www.nsisfans.com"
      FunctionEnd

      Function ${un}.MyGUIInit
      InitPluginsDir
        ;创建按钮
        ;用法:${CreateButton2} 显示文本 X轴位置 Y轴位置 宽度 高度 父窗口窗口句柄 控件ID 目标函数
        ${CreateButton2} "关于(&A)" 14 300 74 21 $HWNDPARENT ${IDC_BUTTON} ${un}.AboutButton
        ;创建链接
         ${CreateLinker2} "下载最新汉化补丁" 120 305 80 $2 $HWNDPARENT ${IDC_LINKER} "www.nsisfans.com"
         BrandingURL::Set /NOUNLOAD "200" "0" "0" "http://www.nsisfans.com"
      FunctionEnd
      
      Function ${un}.onGUIEnd
        ButtonLinker::unload
        BrandingURL::Unload
      FunctionEnd

      !macroend
      ;插入安装函数
      !insertmacro MYMACRO ""

    Function WelcomePage
      nsDialogs::Create 1044 # 1044 用于Welcome或Finish页面。位图尺寸500X295
    Pop $0
    ${If} $0 == error
    Abort
    ${EndIf}
    SetCtlColors $0 "" transparent ;背景设成透明
    GetDlgItem $0 $HWNDPARENT 1028
    ShowWindow $0 ${SW_HIDE}

    ${NSD_Createbitmap} 0 0 100% 100% ""
    Pop $0
    File "/oname=$PLUGINSDIR\Wel.bmp" "Image\bg.bmp"
    ${NSD_SetImage} $0 $PLUGINSDIR\Wel.bmp $1
    nsDialogs::Show
    ${NSD_FreeImage} $1

    FunctionEnd

    Function licshow
    GetDlgItem $0 $HWNDPARENT 1028
    ShowWindow $0 ${SW_SHOW}
    GetDlgItem $0 $HWNDPARENT 3 ; 3 上一步
    ShowWindow $0 ${SW_HIDE}
    FunctionEnd

    Function PasswordPageShow
    GetDlgItem $0 $HWNDPARENT 3 ; 3 上一步
    ShowWindow $0 ${SW_SHOW}
    !Insertmacro MUI_HEADER_TEXT "输入密码" "安装程序需要一个正确的安装密码才能继续"
    ;在该页面中创建一个对话框,并在堆栈中返回其HWND值
    nsDialogs::Create /NOUNLOAD 1018
    ;从堆栈里弹出一个字串到用户变量
    Pop $Dialog
    ;如果结果错误,则在下一行退出
    ${If} $Dialog == error
    Abort
    ${EndIf}
    ${NSD_CreateLabel} 15u 10u 100u 12u "请致电88888888索取密码!"
    Pop $Label
    ${NSD_CreateGroupBox} 15u 45u -35u 70u "密码输入框"
    ${NSD_CreateText} 25u 75u -60u 12u ""
    Pop $Text
    ${NSD_SetFocus} $Text
    ;显示自定义页面
    nsDialogs::Show
    FunctionEnd
    ;离开时验证安装密码函数
    Function PasswordPageLeave
    ;获取用户输入的数据到变量R1
    ${NSD_GetText} $Text $R1
    ;验证密码
    StrCmp $R1 "${Password}" +3
    MessageBox MB_OK|MB_ICONEXCLAMATION "密码输入错误!请输入正确的安装密码!"
    Abort
    FunctionEnd
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|联系我们|NSIS中文论坛    

    GMT+8, 2018-4-22 03:20 , Processed in 0.138015 second(s), 13 queries , MemCache On.

    Powered by Discuz!X3.3

    © 2015-2017 NSISFANS.COM

    快速回复 返回顶部 返回列表