最新消息:

NSIS判断FrameWork是否安装

nsis 永恒心锁 1524浏览 0评论

NSIS的官方地址是:http://nsis.sourceforge.net/Main_Page

NSIS的下载地址是:http://nsis.sourceforge.net/Download,

NSIS的帮助文档是:http://nsis.sourceforge.net/Docs/

判断DotNetFrameWork是否安装,可以自己添加如下的代码:

;f2.0

Function .onInit
 call isStepFramework
 FunctionEnd

 

 Function isStepFramework

 ReadRegStr $0 HKLM SOFTWARE/Microsoft/.NETFramework/policy/v2.0 "50727"
 StrCmp $0 "50727-50727" 0 +2
 Return ;相同
 SetOutPath "$DOCUMENTS"
 File "setupRelease/dotnetfx.exe"

 ExecWait '"$DOCUMENTS/dotnetfx.exe"'
 FunctionEnd

 Function IsNetfx35Installed

   ;Check is Net 3.5 is install

   ;Push 0 for true, Pop -1 for false

   ${registry::Read} "HKEY_LOCAL_MACHINE/Software/Microsoft/NET Framework Setup/NDP/v3.5" "SP" $R0 $R1

   ${If} $R1 == ""

     Push -1

   ${Else}

     Push 0

   ${EndIf}

  FunctionEnd

这是一个定义函数,他首先可以使用${registry::Read}来读取注册表中的值,并放入$R0 $R1,分别是类型和值,判断获取的值是不是为空,就可以判断是不是安装过.NET Framework 3.5了。

安装.NET Framework 3.5:

Function InstallDotNetFx

   SetOutPath "$PLUGINSDIR"

   Banner::show /NOUNLOAD "正在安装.NET运行库,请耐心等待..."

   ExecWait '"$EXEDIR/DotNetFX35/dotNetFx35setup.exe"' $0

   pop $0

   ${If} $0 != "0"

     Banner::destroy

     abort

   ${EndIf}

   Banner::destroy

  FunctionEnd

这是.NET Framework 3.5的安装,我选择了dotNetFx3.5的离线安装包,并将其放在安装文件的目录下,这样可以不把

.NET Framework 3.5打包到程序中,减少程序的大小。$EXEDIR是NSIS的内部程序常量,可以获取安装文件的目录。而且他还提供了很多的内部宏和常量。

插件的自作,需要访问已经安装的程序目录,这就要使用对其注册表的方法,将程序的安装目录获取,对于NSIS,这也是相当的简单的。

首先在安装目录的最上方:

InstallDir "$PROGRAMFILES/Test"

修改为:

InstallDirRegKey HKLM "SOFTWARE/Test" "Path"

然后在Function .onInit中添加如下的内容:

   StrCmp $INSTDIR "" 0 Continue

   MessageBox MB_OK|MB_ICONSTOP "Test 未安装,请先安装Test。"

   Abort

  Continue:
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。丨本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途。丨本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » NSIS判断FrameWork是否安装

您必须 登录 才能发表评论!