NSIS 检测.NET Framework版本(学习九)
来源:互联网 发布:office mac 卡死退出 编辑:程序博客网 时间:2024/06/06 08:35
Section -.NET Framework
;检测是否是需要的.NET Framework版本
Call GetNetFrameworkVersion
Pop $R1
;${If} $R1 <
'2.0.50727'
;${If} $R1 <
'3.5.30729.4926'
${If} $R1 <
'4.0.30319'
;${If} $R1 <
'4.5.52747'
MessageBox MB_YESNO|MB_ICONQUESTION
"此软件运行需要.NET Framework 4.0运行环境,但您机器上似乎没有安装此环境。$\r$\n您有两个选择:$\r$\n1.您自己到互联网上下载.NET Framework 4.0安装,然后再运行此软件$\r$\n2.使用此安装程序在线下载并安装.NET Framework 4.0$\r$\n$\r$\n现在在线下载并安装.NET Framework 4.0,请确认您的机器已连接互联网.继续吗?"
IDNO +2
Call DownloadNetFramework4
${ENDIF}
SectionEnd
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
Function DownloadNetFramework2
;下载 .NET Framework 2.0 SP2
NSISdl::download
/TRANSLATE2
'正在下载 %s'
'正在连接...'
'(剩余 1 秒)'
'(剩余 1 分钟)'
'(剩余 1 小时)'
'(剩余 %u 秒)'
'(剩余 %u 分钟)'
'(剩余 %u 小时)'
'已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s'
/TIMEOUT
=7500
/NOIEPROXY
'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe'
'$TEMP\NetFx20SP2_x86.exe'
Pop $R0
StrCmp $R0
"success"
0 +3
SetDetailsPrint textonly
DetailPrint
"正在安装 .NET Framework 2.0 SP2..."
SetDetailsPrint listonly
ExecWait
'$TEMP\NetFx20SP2_x86.exe /quiet /norestart'
$R1
Delete
"$TEMP\NetFx20SP2_x86.exe"
FunctionEnd
Function DownloadNetFramework35
;下载 .NET Framework 3.5 SP1
NSISdl::download
/TRANSLATE2
'正在下载 %s'
'正在连接...'
'(剩余 1 秒)'
'(剩余 1 分钟)'
'(剩余 1 小时)'
'(剩余 %u 秒)'
'(剩余 %u 分钟)'
'(剩余 %u 小时)'
'已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s'
/TIMEOUT
=7500
/NOIEPROXY
'http://download.microsoft.com/download/2/0/E/20E90413-712F-438C-988E-FDAA79A8AC3D/dotnetfx35.exe'
'$TEMP\dotnetfx35.exe'
Pop $R0
StrCmp $R0
"success"
0 +2
SetDetailsPrint textonly
DetailPrint
"正在安装 .NET Framework 3.5 SP1..."
SetDetailsPrint listonly
ExecWait
'$TEMP\dotnetfx35.exe /quiet /norestart'
$R1
Delete
"$TEMP\dotnetfx35.exe"
FunctionEnd
Function DownloadNetFramework4
;下载 .NET Framework 4.0
NSISdl::download
/TRANSLATE2
'正在下载 %s'
'正在连接...'
'(剩余 1 秒)'
'(剩余 1 分钟)'
'(剩余 1 小时)'
'(剩余 %u 秒)'
'(剩余 %u 分钟)'
'(剩余 %u 小时)'
'已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s'
/TIMEOUT
=7500
/NOIEPROXY
'http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe'
'$TEMP\dotNetFx40_Full_x86_x64.exe'
Pop $R0
StrCmp $R0
"success"
0 +2
SetDetailsPrint textonly
DetailPrint
"正在安装 .NET Framework 4.0 Full..."
SetDetailsPrint listonly
ExecWait
'$TEMP\dotNetFx40_Full_x86_x64.exe /quiet /norestart'
$R1
Delete
"$TEMP\dotNetFx40_Full_x86_x64.exe"
FunctionEnd
Function DownloadNetFramework45
;下载 .NET Framework 4.5
NSISdl::download
/TRANSLATE2
'正在下载 %s'
'正在连接...'
'(剩余 1 秒)'
'(剩余 1 分钟)'
'(剩余 1 小时)'
'(剩余 %u 秒)'
'(剩余 %u 分钟)'
'(剩余 %u 小时)'
'已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s'
/TIMEOUT
=7500
/NOIEPROXY
'http://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe'
'$TEMP\NDP452-KB2901907-x86-x64-AllOS-ENU.exe'
Pop $R0
StrCmp $R0
"success"
0 +2
SetDetailsPrint textonly
DetailPrint
"正在安装 .NET Framework 4.5.2 ..."
SetDetailsPrint listonly
ExecWait
'$TEMP\NDP452-KB2901907-x86-x64-AllOS-ENU.exe /quiet /norestart'
$R1
Delete
"$TEMP\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"
FunctionEnd
0 0
- NSIS 检测.NET Framework版本(学习九)
- NSIS:检测本机.Net Framework版本
- .NET Framework CLR 版本检测
- NSIS 磁盘检测 (学习三)
- 检测.net framework版本,判断是否安装了service pack
- 如何检测已安装的Microsoft.Net Framework的版本
- 如可检测.NET Framework是否安装及安装版本
- 检测 .NET Framework 3.5
- javascript检测 .net Framework
- .Net Framework各版本(1)
- 查看 .net Framework 版本
- .NET Framework版本解析
- .NET Framework版本解析
- .NET Framework的版本
- .NET Framework版本解析
- .NET Framework版本解析
- .Net Framework各版本
- 查看.Net Framework版本
- Redis Java连接操作
- android:layout_gravity 和 android:gravity 的区别
- 查询避免Unknown column ‘xxx’ in ‘where clause’
- Android ViewGroup 中 mFocused 字段引起的问题
- 多线程之四:NSOperation与NSOperationQueue
- NSIS 检测.NET Framework版本(学习九)
- JavaScript——关于列表权重的笔试题
- github上计算机视觉学习资源
- C#获取当前路径方法整理
- 用smack+openfire做即时通讯
- java异常处理
- POJ2230 Watchcow 欧拉回路路径
- excel 数据不全
- cordova5.0 android程序访问外网报404错误解决办法