正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1、CheckDotNetFramework
使用方法:
- ;检查是否安装了3.5
- StrCpy $DotNetFrameworkVersion 3.5
- Push $DotNetFrameworkVersion
- Call CheckDotNetFramework
- Exch $R0
- ${If} $R0 == "1" ; 没有找到
- MessageBox MB_ICONSTOP|MB_OK "程序运行所必需的 Microsoft .NET Framework$DotNetFrameworkVersion 尚未安装,请先安装该组件。" IDYES
- abort
- ${ElseIf} $R0 == "0" ; 找到指定版本的DotNetFramework
- ;检查是否安装了4.0
- pop $DotNetFrameworkVersion
- StrCpy $DotNetFrameworkVersion 4.0
- Push $DotNetFrameworkVersion
- Call CheckDotNetFramework
- Exch $R0
- ${If} $R0 == "1"
- MessageBox MB_ICONSTOP|MB_OK "程序运行所必需的 Microsoft .NET Framework$DotNetFrameworkVersion 尚未安装,请先安装该组件。" IDYES
- abort
- ${EndIf}
- ${Endif}
复制代码
2、GetNetFrameworkVersion
- Function GetNetFrameworkVersion
- ;获取.Net Framework版本支持
- Push $1
- Push $0
- ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install"
- ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Version"
- StrCmp $0 1 KnowNetFrameworkVersion +1
- ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Install"
- ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Version"
- StrCmp $0 1 KnowNetFrameworkVersion +1
- ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "InstallSuccess"
- ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "Version"
- StrCmp $0 1 KnowNetFrameworkVersion +1
- ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Install"
- ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Version"
- StrCmp $1 "" +1 +2
- StrCpy $1 "2.0.50727.832"
- StrCmp $0 1 KnowNetFrameworkVersion +1
- ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Install"
- ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Version"
- StrCmp $1 "" +1 +2
- StrCpy $1 "1.1.4322.573"
- StrCmp $0 1 KnowNetFrameworkVersion +1
- ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Install"
- ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Version"
- StrCmp $1 "" +1 +2
- StrCpy $1 "1.0.3705.0"
- StrCmp $0 1 KnowNetFrameworkVersion +1
- StrCpy $1 "not .NetFramework"
- KnowNetFrameworkVersion:
- Pop $0
- Exch $1
- FunctionEnd
复制代码
使用方法:
- Call GetNetFrameworkVersion
- Pop $1
- ${If} $1 < '2.0.50727'
- MessageBox MB_OK "正在安装 .NET Framework..."
- SetDetailsPrint textonly
- DetailPrint "正在安装 .NET Framework..."
- SetDetailsPrint listonly
-
- SetOutPath "$TEMP"
- SetOverwrite on
- ;File "NetFx20SP2_x86.exe"
- ExecWait '$TEMP\NetFx20SP2_x86.exe /quiet /norestart' $R1
- Delete "$TEMP\NetFx20SP2_x86.exe"
- ${EndIf}
复制代码
3、封装成宏
这种方式不用在脚本中添加函数代码,复用性好,有两个缺点:1)不能在一个脚本中调用多次进行多个版本的判断;2)参数中必须传入DOTNETVMAJOR DOTNETVMINOR DOTNETVMINORMINOR,如果想查4或者4.0版本,脚本中会变成4.或者4.0.,造成找不到,需要改写一下这个脚本,限于目前自己的水平,还改不了。
|