杉宫竹苑工作室

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

NSIS 安装包制做软件的常用小技巧

[复制链接]
发表于 2017-8-27 09:55:45 | 显示全部楼层 |阅读模式

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

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

x
用NSIS软件制作安装包时总会用到那么几个常用的代码,正因为常用到,自己脑袋又不好记不住,所以就一一记录下来,时间一长自然也就成好多条了,贴出来与大家分享一下吧。
1.如何运行一个批处理文件 .bat
注:xiaojian.bat为你的文件名
  1. ExecWait "xiaojian.bat"
  2. ;不显示黑框框
  3. nsExec::Exec "xiaojian.bat"
复制代码

2.如何运行一个VBS文件 .vbs
注:xiaojian.vbs为你的文件名
  1. ExecWait '"$SYSDIR\cscript.exe" "xiaojian.vbs"'
  2. ;不显示黑框框
  3. nsExec::Exec '"$SYSDIR\cscript.exe" "xiaojian.vbs"'
复制代码

3.如何运行一个注册表文件
注:xiaojian.reg为你的文件名

  1. ExecWait "regedit.exe /s xiaojian.reg"接写入注册表
复制代码

WriteRegStr
WriteRegExpandStr
WriteRegDWORD
WriteRegBin
比如:WriteRegDWORD HKCU "Software\ES-Computing\xiaojian\Install" "eula" '0x00000001"
请看NSIS详细说明
4.如何运行一个安装文件 .inf
注:xiaojian.inf 为你的文件名
  1. ExecWait "RunDll32 advpack.dll,LaunchINFSection xiaojian.inf,DefaultInstall"
复制代码

5.如何运行一个安装文件 .msi
注:xiaojian.msi为你的文件名
  1. Execwait `msiexec /qn /i "xiaojian.msi"`
复制代码

6.关联文件图标后,图标没变化。
刷新图标
  1. 'System::Call shell32.dll::SHChangeNotify(l, l, i, i) v (0x08000000, 0, 0, 0)'
复制代码

7.安装窗体变窄了
  1. SetFont /LANG=2052 "tahoma" 8
  2. XP特殊文件夹的位置:
  3. HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
  4. 安装硬盘上的字体(代码插入Function,Section内):
  5. StrCpy $0 "D:\Fonts\Chs\经典空趣体繁.ttf"
  6. WriteRegStr HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" "经典空趣体繁(TrueType)" "$0"
  7. System::Call "GDI32::AddFontResource(t) i ('$0') .s"
  8. 在经典模式下使用中文界面(代码插入文件头):
  9. LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"
  10. LangString Name 2052 "Simplified Chinese"
复制代码


#-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#
  1. ;卸载程序之前
  2. Function un.onInit
  3.   MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2
  4.   Abort
  5. ;运行批处理文件
  6. ExecShell Open "$INSTDIR\rege\UnregUAC.bat" "" SW_HIDE
  7. ;ExecShell Open "sdbinst /u *.sdb" "" SW_HIDE
  8. FunctionEnd
  9. Function un.onUninstSuccess
  10.   HideWindow
  11.   MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"
  12. FunctionEnd
  13. ;安装结束后,运行批处理文件
  14. Function .onInstSuccess
  15. ;ExecShell Open "$INSTDIR\rege\RegUAC.bat" "" SW_HIDE
  16. ;ExecShell Open "sdbinst /q *.sdb" "" SW_HIDE
  17. ;ExecWait "sdbinst /q *.sdb"
  18. ;ExecShell Open 'cmd' '/c "sdbinst /q *.sdb"' SW_HIDE
  19. ExecShell Open 'cmd' '/k "sdbinst /q *.sdb"' SW_SHOWNORMAL
  20. functionend
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 22:08 , Processed in 0.102793 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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