关注互联网与Web前端技术,这里是我记录网上折腾与生活感悟的地方.

精确判断系统是否已经安装了Visual C++ 2005 Or Visual C++ 2008

Visual C++ Redistributable(简称VC运行库),现在的系统VC2005是必须安装,QQ、游戏、网络应用都离不开VC2005的支持,(也就是说VC不安装这些都不能用),VC2008运行库呢是可选的,现在或将来新游戏都依赖VC2008
代码呢没什么精辟之处,甚至不屑一顾的代码,那我又为何写这样的垃圾代码呢?
如果你经常安装系统软件或游戏哪怕一线主流游戏的安装程序,在安装时都不管你是否安装了VC,它都要安装一次,更可气的明明我安装的是高版本它却拿低版本进行覆盖安装,众所周知任何软件低版本容易被病毒木马攻击,特别是VC运行库。所以我在想难道判断是否安装了VC运行库就那么难吗?于是研究一番写了这个这个代码,希望对这些应用有关的程序员有帮助。

VC2005

@echo off
set "HKLMU=HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall"
::::: 判断系统是否已经安装了 Visual C++ 2005 (包括所有版本)        https://yusky.me  By:Yusky
::::: 代码能实现判断X86、X64、IA64各版本的Visual C++ 2005,正确率99%除非微软发布新版本Visual C++ 2005
::::: 有就跳过安装Visual C++ 2005,没有则先安装。
reg query %HKLMU%{A49F249F-0C91-497F-86DF-B2585E8E76B7}>nul 2>nul&&set VC2005=Microsoft Visual C++ 2005 Redistributable X86
reg query %HKLMU%{7299052B-02A4-4627-81F2-1818DA5D550D}>nul 2>nul&&set VC2005=Microsoft Visual C++ 2005 SP1 Redistributable X86
reg query %HKLMU%{837b34e3-7c30-493c-8f6a-2b0f04e2912c}>nul 2>nul&&set VC2005=Microsoft Visual C++ 2005 SP1 Redistributable ATL Security Update X86
reg query %HKLMU%{6E8E85E8-CE4B-4FF5-91F7-04999C9FAE6A}>nul 2>nul&&set VC2005=Microsoft Visual C++ 2005 Redistributable X64
reg query %HKLMU%{071C9B48-7C32-4621-A0AC-3F809523288F}>nul 2>nul&&set VC2005=Microsoft Visual C++ 2005 SP1 Redistributable X64
reg query %HKLMU%{6CE5BAE9-D3CA-4B99-891A-1DC6C118A5FC}>nul 2>nul&&set VC2005=Microsoft Visual C++ 2005 SP1 Redistributable ATL Security Update X64
reg query %HKLMU%{03ED71EA-F531-4927-AABD-1C31BCE8E187}>nul 2>nul&&set VC2005=Microsoft Visual C++ 2005 Redistributable IA64
reg query %HKLMU%{0F8FB34E-675E-42ED-850B-29D98C2ECE08}>nul 2>nul&&set VC2005=Microsoft Visual C++ 2005 SP1 Redistributable IA64
reg query %HKLMU%{85025851-A784-46D8-950D-05CB3CA43A13}>nul 2>nul&&set VC2005=Microsoft Visual C++ 2005 SP1 Redistributable ATL Security Update IA64
if defined VC2005 (echo %VC2005% 已安装!&ping -n 3 127.1>nul) else (goto 2005Install)
:::::这里你要做的事
goto:eof
:2005Install
:::::这里还可以精确判断何种版本的Visual C++ 2005,该不该更新到最新的。
:::::最新的Visual C++ 2008是Microsoft Visual C++ 2005 SP1 Redistributable ATL Security Update ***
:::::各版本下载地址 http://www.microsoft.com/downloads/details.aspx?FamilyID=766a6af7-ec73-40ff-b072-9112bab119c2&DisplayLang=zh-cn
echo 正在安装 Microsoft Visual C++ 2005 Redistributable
vcredist_x86.exe /q
goto:eof

 

VC2008

@echo off
set "HKLMU=HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall"
::::: 判断系统是否已经安装了 Visual C++ 2008 (包括所有版本)       bbs.bathome.net By:FastSLZ
::::: 代码能实现判断X86、X64、IA64各版本的Visual C++ 2008,正确率99%除非微软发布新版本Visual C++ 2008
::::: 有就跳过安装Visual C++ 2008,没有则先安装。
reg query %HKLMU%{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}>nul 2>nul&&set VC2008=Microsoft Visual C++ 2008 Redistributable X86
reg query %HKLMU%{9A25302D-30C0-39D9-BD6F-21E6EC160475}>nul 2>nul&&set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable X86
reg query %HKLMU%{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}>nul 2>nul&&set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable ATL Security Update X86
reg query %HKLMU%{350AA351-21FA-3270-8B7A-835434E766AD}>nul 2>nul&&set VC2008=Microsoft Visual C++ 2008 Redistributable X64
reg query %HKLMU%{8220EEFE-38CD-377E-8595-13398D740ACE}>nul 2>nul&&set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable X64
reg query %HKLMU%{4B6C7001-C7D6-3710-913E-5BC23FCE91E6}>nul 2>nul&&set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable ATL Security Update X64
reg query %HKLMU%{2B547B43-DB50-3139-9EBE-37D419E0F5FA}>nul 2>nul&&set VC2008=Microsoft Visual C++ 2008 Redistributable IA64
reg query %HKLMU%{5827ECE1-AEB0-328E-B813-6FC68622C1F9}>nul 2>nul&&set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable IA64
reg query %HKLMU%{977AD349-C2A8-39DD-9273-285C08987C7B}>nul 2>nul&&set VC2008=Microsoft Visual C++ 2008 SP1 Redistributable ATL Security Update IA64
if defined VC2008 (echo %VC2008% 已安装!&ping -n 3 127.1>nul) else (goto 2008Install)
:::::这里你要做的事
goto:eof
:2008Install
:::::这里还可以精确判断何种版本的Visual C++ 2008,该不该更新到最新的。
:::::最新的Visual C++ 2008是Microsoft Visual C++ 2008 SP1 Redistributable ATL Security Update ***
:::::各版本下载地址 http://www.microsoft.com/downloads/details.aspx?FamilyID=2051a0c1-c9b5-4b0a-a8f5-770a549fd78c&DisplayLang=zh-cn
echo 正在安装 Microsoft Visual C++ 2008 Redistributable
vcredist_2008_x86.exe /q
goto:eof

 

使用方法:

VC2005和VC2008使用方法一样

1.新建文本文档,打开

2.将什么VC2005运行库代码复制到里面

3.在第16行下面添加以下代码“Run Vcredist_x86.exe”

4.另存为“批处理文件.Bat”(要是没有另存为批处理文件这个选项的话。直接保存文件。然后修改文件后缀名为“.Bat”)

5.下载最新版的VC2005运行库,http://www.microsoft.com/downloads/details.aspx?FamilyID=766a6af7-ec73-40ff-b072-9112bab119c2&DisplayLang=zh-cn
      将VC2005运行库文件和刚刚做好的批处理文件放在一起。

6.Enjoy

By:Yusky.Me

未经允许不得转载:Yusky » 精确判断系统是否已经安装了Visual C++ 2005 Or Visual C++ 2008

分享到:更多 ()

评论 3

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #2

    博主您好,请问用C怎么检测呢?

    liaozhen2年前 (2016-01-28)回复
  2. #1

    说真的 这文章我还真看不懂……

    海天8年前 (2010-07-08)回复
    • 呃, 这个是我用在绿色软件封装中加入的东东。。 要是没安装VC2005或者2008 。某些软件运行不了。比如QQ。绿色版的QQ。我做QQ自解压。也就是自动安装。 要是没VC2005的话。 就会运行部起来~~~。。。

      以后慢慢就懂了哈

      Yusky8年前 (2010-07-09)回复