杉宫竹苑工作室

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

判断 .NET Framework 是否安装

[复制链接]
发表于 2016-6-22 19:48:30 | 显示全部楼层 |阅读模式

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

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

x
  1. ; IsDotNETInstalled
  2. ;
  3. ; 用法:
  4. ;   Call IsDotNETInstalled
  5. ;   Pop $0
  6. ;   StrCmp $0 1 found.NETFramework no.NETFramework


  7. Function IsDotNETInstalled
  8.    Push $0
  9.    Push $1
  10.    Push $2
  11.    Push $3
  12.    Push $4

  13.    ReadRegStr $4 HKEY_LOCAL_MACHINE \
  14.      "Software\Microsoft\.NETFramework" "InstallRoot"
  15.    # 移除退格键
  16.    Push $4
  17.    Exch $EXEDIR
  18.    Exch $EXEDIR
  19.    Pop $4
  20.    # 如果根目录不存在则 .NET 未安装
  21.    IfFileExists $4 0 noDotNET

  22.    StrCpy $0 0

  23.    EnumStart:

  24.      EnumRegKey $2 HKEY_LOCAL_MACHINE \
  25.        "Software\Microsoft\.NETFramework\Policy"  $0
  26.      IntOp $0 $0 + 1
  27.      StrCmp $2 "" noDotNET

  28.      StrCpy $1 0

  29.      EnumPolicy:

  30.        EnumRegValue $3 HKEY_LOCAL_MACHINE \
  31.          "Software\Microsoft\.NETFramework\Policy\$2" $1
  32.        IntOp $1 $1 + 1
  33.         StrCmp $3 "" EnumStart
  34.          IfFileExists "$4\$2.$3" foundDotNET EnumPolicy

  35.    noDotNET:
  36.      StrCpy $0 0
  37.      Goto done

  38.    foundDotNET:
  39.      StrCpy $0 1

  40.    done:
  41.      Pop $4
  42.      Pop $3
  43.      Pop $2
  44.      Pop $1
  45.      Exch $0
  46. FunctionEnd
复制代码


回复

使用道具 举报

 楼主| 发表于 2019-2-26 20:08:28 | 显示全部楼层
client和Full 只要有一个存在就表示安装了4.0

  1.         #-- 判断.NET4.0是否安装 --#
  2. Function checkFramework4
  3.                 ;Clinet 和 Full存在一个都说明安装了Framework
  4.         ClearErrors
  5.         ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" "Install2"
  6.                 IfErrors 0 ExitCheckFramework4
  7.     ClearErrors
  8.          ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install"
  9.            IfErrors 0 ExitCheckFramework4
  10.                  ;没有安装Framework
  11.          MessageBox MB_OK "装程序无法检测到.NET Framework V4.0"
  12. Abort
  13.          ExitCheckFramework4:

  14. FunctionEnd

复制代码
再在.onInit函数第一句里面加上:“Call CheckFramework4”
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 02:22 , Processed in 0.108967 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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