杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1985|回复: 0

如何打破 NSIS 的 8192 字节限制

[复制链接]
发表于 2016-9-2 15:08:39 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. /*----------------------------------------------/
  2. / 关于 NSIS 自定义控件写入超过 8192 字节的插件。/
  3. / 理论上如果控件能够容纳,多大的文本都能放入 /
  4. /----------------------------------------------*/

  5. !include "MUI.nsh"

  6. Name "test"
  7. OutFile "Setup.exe"

  8. SetCompressor lzma ; 设置 lzma 压缩方式

  9. Var hwnd ; 自定义页面的窗口句柄

  10. Page custom PageInitFunc PageLeaveFunc # 自定义页面
  11. !insertmacro MUI_PAGE_INSTFILES

  12. !insertmacro MUI_LANGUAGE "SimpChinese" # 设置安装界面语言

  13. ReserveFile "io.ini" # 预先打包文件,方便安装加速释放 io.ini
  14. ReserveFile "license.txt" # 预先打包文件,方便安装加速释放 io.ini

  15. Function .onInit
  16. InitPluginsDir
  17. File "/oname=$PLUGINSDIR\io.ini" "io.ini" ; 释放 io.ini 文件
  18. File "/oname=$PLUGINSDIR\license.txt" "license.txt" ; 释放 license.txt 文件
  19. FunctionEnd

  20. Function PageInitFunc
  21. InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\io.ini"
  22. Pop $hwnd ; 获取自定义页面的窗口句柄
  23. GetDlgItem $1 $hwnd 1200 ; 控件句柄获取公式 (1200 + field 1 - 1)
  24. nsExStr::SetWindowText $1 "$PLUGINSDIR\license.txt" ; 写入一个超过 8012 字节的文件到一个控件,我这里写入的是一个超过 30KB 的文本文件。理论上大小没有限制,只要控件能够接受多大,它就能有多大。
  25. InstallOptions::show ; 显示自定义页面
  26. Pop $0
  27. FunctionEnd

  28. Function PageLeaveFunc
  29. FunctionEnd

  30. Section "sec a" SEC1
  31. SectionEnd
复制代码

ini 文件代码
  1. [Settings]
  2. NumFields=1

  3. [Field 1]
  4. Type=Text
  5. Flags=MULTILINE|VSCROLL
  6. State=Text
  7. Left=2
  8. Right=299
  9. Top=3
  10. Bottom=137
复制代码
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-18 00:15 , Processed in 0.116335 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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