当前位置: 首页 > 文档资料 > NSIS 用户手册 >

C.7 判断 .NET Framework 是否已安装

优质
小牛编辑
134浏览
2023-12-01
 ; IsDotNETInstalled
 ;
 ; 用法:
 ;   Call IsDotNETInstalled
 ;   Pop $0
 ;   StrCmp $0 1 found.NETFramework no.NETFramework
 Function IsDotNETInstalled
   Push $0
   Push $1
   Push $2
   Push $3
   Push $4
   ReadRegStr $4 HKEY_LOCAL_MACHINE \
     "Software\Microsoft\.NETFramework" "InstallRoot"
   # 移除退格键
   Push $4
   Exch $EXEDIR
   Exch $EXEDIR
   Pop $4
   # 如果根目录不存在则 .NET 未安装
   IfFileExists $4 0 noDotNET
   StrCpy $0 0
   EnumStart:
     EnumRegKey $2 HKEY_LOCAL_MACHINE \
       "Software\Microsoft\.NETFramework\Policy"  $0
     IntOp $0 $0 + 1
     StrCmp $2 "" noDotNET
     StrCpy $1 0
     EnumPolicy:
       EnumRegValue $3 HKEY_LOCAL_MACHINE \
         "Software\Microsoft\.NETFramework\Policy\$2" $1
       IntOp $1 $1 + 1
        StrCmp $3 "" EnumStart
         IfFileExists "$4\$2.$3" foundDotNET EnumPolicy
   noDotNET:
     StrCpy $0 0
     Goto done
   foundDotNET:
     StrCpy $0 1
   done:
     Pop $4
     Pop $3
     Pop $2
     Pop $1
     Exch $0
 FunctionEnd