nsis检测vc2013运行环境vcredist_x86.exe是否已经安装

网上的代码

原始地址

; 安装VC环境
Function InstallVC
   Push $R0
   ClearErrors
   ReadRegDword $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}" "Version" 

   ; 检测含有vc的注册表信息是否存在
   IfErrors 0 VSRedistInstalled
   Exec "$INSTDIR\vcredist_x86.exe /q"   ;若不存在,执行静默安装
   StrCpy $R0 "-1" 
   ; MessageBox MB_OK  $R0 

VSRedistInstalled:
   ; MessageBox MB_OK  "已安装" 
   Exch $R0
 ; Delete "$INSTDIR\vcredist_x86." 
FunctionEnd

问题描述:
1, 代码有点老检查的是vc2008
2,读取注册表的的类型和名称都变了
3,push之后就用pop吧,别用奇葩的Exch,不知道这是不是nsis早期版本的问题

我修改后的

; 安装VC环境
Function InstallVC
   Push $R0
   ClearErrors
   ;这里检测的是vs2013 update5的 vcredist_x86.exe 版本号是: 12.0.30501.0
   ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{5e4b593b-ca3c-429c-bc49-b51cbf46e72a}" "BundleVersion"
   ; 检测含有vc的注册表信息是否存在
   IfErrors 0 VSRedistInstalled
        Exec "$INSTDIR\vcredist_x86.exe /q"   ;若不存在,执行静默安装
   StrCpy $R0 "-1"
   ;MessageBox MB_OK  "安装完毕"

VSRedistInstalled:
   ;MessageBox MB_OK  "已安装"
   ;Exch $R0
   pop $R0
   ; Delete "$INSTDIR\vcredist_x86."
FunctionEnd
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面为该资源的树壮目录。可以先确认是否有需要的版本dll或exe再进行下载。 VS2013REDIST运行库 │ 1.bat │ ├─2052 │ vcredist_arm.exevcredist_x64.exevcredist_x86.exe │ ├─arm │ ├─Microsoft.VC120.CRT │ │ msvcp120.dll │ │ msvcr120.dll │ │ vccorlib120.dll │ │ │ ├─Microsoft.VC120.CXXAMP │ │ vcamp120.dll │ │ │ └─Microsoft.VC120.OPENMP │ vcomp120.dll │ ├─Debug_NonRedist │ ├─arm │ │ ├─Microsoft.VC120.DebugCRT │ │ │ msvcp120d.dll │ │ │ msvcr120d.dll │ │ │ vccorlib120d.dll │ │ │ │ │ ├─Microsoft.VC120.DebugCXXAMP │ │ │ vcamp120d.dll │ │ │ │ │ └─Microsoft.VC120.DebugOPENMP │ │ vcomp120d.dll │ │ │ ├─x64 │ │ ├─Microsoft.VC120.DebugCRT │ │ │ msvcp120d.dll │ │ │ msvcr120d.dll │ │ │ vccorlib120d.dll │ │ │ │ │ ├─Microsoft.VC120.DebugCXXAMP │ │ │ vcamp120d.dll │ │ │ │ │ ├─Microsoft.VC120.DebugMFC │ │ │ mfc120d.dll │ │ │ mfc120ud.dll │ │ │ mfcm120d.dll │ │ │ mfcm120ud.dll │ │ │ │ │ └─Microsoft.VC120.DebugOpenMP │ │ vcomp120d.dll │ │ │ └─x86 │ ├─Microsoft.VC120.DebugCRT │ │ msvcp120d.dll │ │ msvcr120d.dll │ │ vccorlib120d.dll │ │ │ ├─Microsoft.VC120.DebugCXXAMP │ │ vcamp120d.dll │ │ │ ├─Microsoft.VC120.DebugMFC │ │ mfc120d.dll │ │ mfc120ud.dll │ │ mfcm120d.dll │ │ mfcm120ud.dll │ │ │ └─Microsoft.VC120.DebugOpenMP │ vcomp120d.dll │ ├─GraphicsDbgRedist │ ├─ARM │ │ │ VsGraphicsHelper.dll │ │ │ │ │ └─2052 │ │ VsGraphicsResources.dll │ │ │ ├─X64 │ │ │ VsGraphicsHelper.dll │ │ │ │ │ └─2052 │ │ VsGraphicsResources.dll │ │ │ └─X86 │ │ VsGraphicsHelper.dll │ │ │ └─2052 │ VsGraphicsResources.dll │ ├─x64 │ ├

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值