您的位置:首页 > 其它

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

2017-02-10 21:22 344 查看
NSIS安装包制做软件的常用小技巧

用NSIS软件制作安装包时总会用到那么几个常用的代码,正因为常用到,自己脑袋又不好记不住,所以就一一记录下来,时间一长自然也就成好多条了,贴出来与大家分享一下吧。

1.如何运行一个批处理文件 .bat

注:xiaojian.bat为你的文件名

ExecWait "xiaojian.bat"


不显示黑框框

nsExec::Exec "xiaojian.bat"


2.如何运行一个VBS文件 .vbs

注:xiaojian.vbs为你的文件名

ExecWait '"$SYSDIR\cscript.exe" "xiaojian.vbs"'
不显示黑框框
nsExec::Exec '"$SYSDIR\cscript.exe" "xiaojian.vbs"'


3.如何运行一个注册表文件

注:xiaojian.reg为你的文件名

ExecWait "regedit.exe /s xiaojian.reg"接写入注册表
WriteRegStr
WriteRegExpandStr
WriteRegDWORD
WriteRegBin
比如:WriteRegDWORD HKCU "Software\ES-Computing\xiaojian\Install" "eula" '0x00000001"


请看NSIS详细说明

4.如何运行一个安装文件 .inf

注:xiaojian.inf 为你的文件名

ExecWait "RunDll32 advpack.dll,LaunchINFSection xiaojian.inf,DefaultInstall"


5.如何运行一个安装文件 .msi

注:xiaojian.msi为你的文件名

Execwait `msiexec /qn /i "xiaojian.msi"`


6.关联文件图标后,图标没变化。

刷新图标

'System::Call shell32.dll::SHChangeNotify(l, l, i, i) v (0x08000000, 0, 0, 0)'


7.安装窗体变窄了。

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

#-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#
;卸载程序之前
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2
Abort
;运行批处理文件
ExecShell Open "$INSTDIR\rege\UnregUAC.bat" "" SW_HIDE
;ExecShell Open "sdbinst /u *.sdb" "" SW_HIDE
FunctionEnd
Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"
FunctionEnd
;安装结束后,运行批处理文件
Function .onInstSuccess
;ExecShell Open "$INSTDIR\rege\RegUAC.bat" "" SW_HIDE
;ExecShell Open "sdbinst /q *.sdb" "" SW_HIDE
;ExecWait "sdbinst /q *.sdb"
;ExecShell Open 'cmd' '/c "sdbinst /q *.sdb"' SW_HIDE
ExecShell Open 'cmd' '/k "sdbinst /q *.sdb"' SW_SHOWNORMAL
functionend
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nsis-安装包 软件