杉宫竹苑工作室

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

NSIS检测.NET Framework并在线下载

[复制链接]
发表于 2016-9-2 20:36:06 | 显示全部楼层 |阅读模式

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

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

x
  1. Section -.NET Framework
  2.   ;检测是否是需要的.NET Framework版本
  3.   Call GetNetFrameworkVersion
  4.   Pop $R1
  5.   ;${If} $R1 < '2.0.50727'
  6.   ;${If} $R1 < '3.5.30729.4926'
  7.   ${If} $R1 < '4.0.30319'
  8.   ;${If} $R1 < '4.5.52747'
  9.     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
  10.       Call DownloadNetFramework4
  11.     ${ENDIF}
  12. SectionEnd

  13. Function GetNetFrameworkVersion
  14. ;获取.Net Framework版本支持
  15.     Push $1
  16.     Push $0
  17.     ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install"
  18.     ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Version"
  19.     StrCmp $0 1 KnowNetFrameworkVersion +1
  20.     ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Install"
  21.     ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Version"
  22.     StrCmp $0 1 KnowNetFrameworkVersion +1
  23.     ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "InstallSuccess"
  24.     ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "Version"
  25.     StrCmp $0 1 KnowNetFrameworkVersion +1
  26.     ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Install"
  27.     ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Version"
  28.     StrCmp $1 "" +1 +2
  29.     StrCpy $1 "2.0.50727.832"
  30.     StrCmp $0 1 KnowNetFrameworkVersion +1
  31.     ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Install"
  32.     ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Version"
  33.     StrCmp $1 "" +1 +2
  34.     StrCpy $1 "1.1.4322.573"
  35.     StrCmp $0 1 KnowNetFrameworkVersion +1
  36.     ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Install"
  37.     ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Version"
  38.     StrCmp $1 "" +1 +2
  39.     StrCpy $1 "1.0.3705.0"
  40.     StrCmp $0 1 KnowNetFrameworkVersion +1
  41.     StrCpy $1 "not .NetFramework"
  42.     KnowNetFrameworkVersion:
  43.     Pop $0
  44.     Exch $1
  45. FunctionEnd

  46. Function DownloadNetFramework2
  47. ;下载 .NET Framework 2.0 SP2
  48.   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'
  49.   Pop $R0
  50.   StrCmp $R0 "success" 0 +3

  51.   SetDetailsPrint textonly
  52.   DetailPrint "正在安装 .NET Framework 2.0 SP2..."
  53.   SetDetailsPrint listonly
  54.   ExecWait '$TEMP\NetFx20SP2_x86.exe /quiet /norestart' $R1
  55.   Delete "$TEMP\NetFx20SP2_x86.exe"

  56. FunctionEnd

  57. Function DownloadNetFramework35
  58. ;下载 .NET Framework 3.5 SP1
  59.   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'
  60.   Pop $R0
  61.   StrCmp $R0 "success" 0 +2

  62.   SetDetailsPrint textonly
  63.   DetailPrint "正在安装 .NET Framework 3.5 SP1..."
  64.   SetDetailsPrint listonly
  65.   ExecWait '$TEMP\dotnetfx35.exe /quiet /norestart' $R1
  66.   Delete "$TEMP\dotnetfx35.exe"

  67. FunctionEnd

  68. Function DownloadNetFramework4
  69. ;下载 .NET Framework 4.0
  70.   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'
  71.   Pop $R0
  72.   StrCmp $R0 "success" 0 +2
  73.   
  74.   SetDetailsPrint textonly
  75.   DetailPrint "正在安装 .NET Framework 4.0 Full..."
  76.   SetDetailsPrint listonly
  77.   ExecWait '$TEMP\dotNetFx40_Full_x86_x64.exe /quiet /norestart' $R1
  78.   Delete "$TEMP\dotNetFx40_Full_x86_x64.exe"
  79.   
  80. FunctionEnd

  81. Function DownloadNetFramework45
  82. ;下载 .NET Framework 4.5
  83.   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'
  84.   Pop $R0
  85.   StrCmp $R0 "success" 0 +2

  86.   SetDetailsPrint textonly
  87.   DetailPrint "正在安装 .NET Framework 4.5.2 ..."
  88.   SetDetailsPrint listonly
  89.   ExecWait '$TEMP\NDP452-KB2901907-x86-x64-AllOS-ENU.exe /quiet /norestart' $R1
  90.   Delete "$TEMP\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"

  91. FunctionEnd
复制代码


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 20:30 , Processed in 0.238095 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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