`
isiqi
  • 浏览: 16137828 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

判断以及获取visual studio安装路径

阅读更多

最近发现用vs处理xml文件还挺方便的哦,关键是快捷键已经用的很熟,除了没有相同字符串高亮这个notepad++特有的功能外,其他都已经很完善了,语法检查不错,所以,在工具里就想用vs作为默认xml文本编辑器。

研究了很久的注册表项,才发现判断vs是否安装并不是那么容易,起码并不是那么简单的。

1.vs的注册项在HKEY_CURRENT_USER/SOFTWARE/MICROSOFT/VISUALSTUDIO/ 下,如果同时安装了vs8,vs9,那么该项下降有两个项:8.0 , 9.0;

注意:不要从HKEY_LOCAL_MACHINE中找,你会发现一大堆版本,vs3—vs9都有。

2.vs的安装位置,这个也不是那么的靠谱,只能找到一个最后写入注册表的位置。在安装vs的时候会注册一个

HKEY_LOCAL_MACHILE/SOFTWARE/MICROSOFT/CURRENTVERSION/APP PATHS/DEVENV.EXE,默认值就是vs的安装位置,但是如果你先安装了vs8,在安装了vs9,那么该项就被改写成vs9的安装目录了。

3.也许你会说平常打开vs solution没问题啊,windows找到合适的vs打开的,其实,还有一个东西,就是在c:\program files\common files\microsoft shared\msenv\vslauncher.exe,这个学名叫visual studio version selector,专门用来获取正确的vs的版本。它应该维护了visual studio的版本及位置信息,但是遗憾的是,vslauncher并没有把相关信息存储在注册表里--这可真是头疼啊....

...

以上的思路貌似没什么错,但是其实是错了,各位看官发现了吗...

从一开始我就错了,导致后面的推理越来越复杂。第一步当我在看到HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/VISUALSTUDIO/中那么多的版本时,我就片面的认为这个项里的信息并不实用,所以都没有检验就直接忽略了,但其实在那里面确实存在着关键的信息。虽然那里面确实存在着诸多的版本,但是没有安装的并没有什么值,而在已经安装的项下,会看到InstallDir--也就是该版本的安装目录,这样,就ok了。

操纵注册表,自己一个个写注册表函数是要死人的,我曾多次写过,但是多次忘记,那些函数的设计实在是很不人性化啊。但是不要紧,我们有bcg,使用其中的CBCGPRegistry类,能够轻松操作注册表,当然像codeproject上也有很多免费的类库,总之,千万别自己写,真要写就写个全面的,也发布到网上去,以后可以复用的,否则就没意思了,因为你不久就会忘记的:~(

总结一下:1.先从HKEY_CURRENT_USER下获取用户确实安装的版本数,比如有8.0,9.0两个版本,然后让用户选择一个作为默认版本,接着从HKEY_LOCAL_MACHINE里找到对应的版本号并获取其地址,然后将其写入工具的注册表里。

分享到:
评论

相关推荐

    Visual C++数字图像处理开发入门与编程实践2-8章源代码

    第二章EasyDraw是一个简单的绘图软件,这个实例会综合运用本章所介绍了Visual C++ 2005的基础知识。EasyDraw拥有以下功能: 1.直线、矩形、椭圆的绘制。 2.可以更改绘制线条的类型、宽度、颜色。 <br>第三...

    Visual Basic 2010入门经典.part1.rar

    1.3 理解 Visual Studio 2010 22 1.4 修改对象的属性 23 1.4.1 对象的命名 23 1.4.2 设置窗体的Text属性 24 1.4.3 保存项目 25 1.4.4 为窗体添加图标 25 1.4.5 改变窗体的大小 26 1.5 在窗体中添加控件 27 ...

    精通WindowsAPI 函数 接口 编程实例

    4.3.4 获取程序所在的目录、程序模块路径,获取和设置当前目录 97 4.3.5 查找文件、遍历指定目录下的文件和子目录 100 4.3.6 递归遍历目录树 103 4.3.7 获取、设置文件属性和时间 105 4.4 内存映射文件 ...

    精通Windows.API-函数、接口、编程实例.pdf

    4.3.4 获取程序所在的目录、程序模块路径,获取和设置当前目录 97 4.3.5 查找文件、遍历指定目录下的文件和子目录 100 4.3.6 递归遍历目录树 103 4.3.7 获取、设置文件属性和时间 105 4.4 内存映射文件 ...

    Visual Basic 2010入门经典.part2.rar

    1.3 理解 Visual Studio 2010 22 1.4 修改对象的属性 23 1.4.1 对象的命名 23 1.4.2 设置窗体的Text属性 24 1.4.3 保存项目 25 1.4.4 为窗体添加图标 25 1.4.5 改变窗体的大小 26 1.5 在窗体中添加控件 27 ...

    Visual C++ 2005入门经典--源代码及课后练习答案

    CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Visual C++ 2005入门经典》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2005入门经典 ...

    Visual C# 2005程序设计自学手册 随书源码第一部分(共三部)

    1.3 安装集成开发环境Microsoft Visual Studio 2005 6 1.3.1 安装Microsoft Visual Studio 2005开发环境 6 1.3.2 安装Microsoft Visual Studio 2005 MSDN帮助 9 1.3.3 如何使用MSDN帮助 11 1.3.4 利用MSDN...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Visual C++ 2010入门经典(第5版)》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2010...

Global site tag (gtag.js) - Google Analytics