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
发布了148 篇原创文章 · 获赞 18 · 访问量 12万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览