最近发现用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 Studio 2005(C#)项目调试问题解决方案集锦》 本文主要针对Visual Studio 2005(C#)开发环境中的调试问题,提供了32个常见问题的解决方案,旨在帮助开发者解决在实际工作中遇到的困扰。 1、检测到有潜在...
本示例着重讲解如何在Visual Studio 2013环境下,利用C#编程实现DataGridView控件显示指定链接的图片,并且在用户点击图片时可以实现图片的放大功能。 首先,我们需要了解DataGridView的基本用法。它是一个可自定义...
在C#编程中,获取程序所在目录是一项基本且重要的任务,尤其在处理资源路径、配置文件或执行特定操作时。VS2005是Visual Studio 2005的缩写,是一个流行的开发环境,用于创建.NET Framework应用程序。在本文中,我们...
2. 调试技巧:利用Visual Studio的调试工具,如设置断点、查看变量值、单步执行代码,可以帮助理解源码运行过程。 六、学习与实践 学习MFC五子棋源码,不仅可以掌握MFC的基本用法,还能提升游戏编程和AI设计的能力...
在Windows系统中,为了确保应用程序能够顺利运行,通常需要安装一些必要的运行库,如Visual Studio (VS)运行库。Inno Setup是一款强大的安装制作工具,它可以帮助开发者创建专业的Windows安装包,包括静默安装功能。...
第二章EasyDraw是一个简单的绘图软件,这个实例会综合运用本章所介绍了Visual C++ 2005的基础知识。EasyDraw拥有以下功能: 1.直线、矩形、椭圆的绘制。 2.可以更改绘制线条的类型、宽度、颜色。 <br>第三...
`主域名获取.v12.suo`是Visual Studio用户特定的设置文件,不包含代码逻辑,而是用户的IDE设置。`domains`可能是一个包含域名数据的文件或文件夹,而`ConsoleApplication2`可能是一个控制台应用程序项目,负责读取...
- `.vs`:这是Visual Studio的工作区目录,包含项目特有的配置和设置。 - `WiFiDemo`:这可能是主项目文件夹,可能包含源代码、资源文件等。 - `Backup`:这是一个备份文件夹,可能包含了项目不同版本的备份。 通过...
在这个上下文中,`SHGetSpecialFolderLocation`函数可以用来获取特定的系统目录,比如用户的桌面路径。 3. **文件遍历**:为了获取桌面上的文件和快捷方式,需要遍历指定目录下的所有文件。`FindFirstFile`和`...
- **安装Visual Studio**:VB.NET作为Visual Studio的一部分提供,因此需要先下载并安装Visual Studio。可以从微软官方网站获取社区版(免费),也可以根据需求选择其他付费版本。 - **创建新项目**:打开Visual ...
总结来说,这个C++程序提供了一个简单的方法来判断输入的年份是否为闰年,而压缩包中的文件则是该项目在Visual Studio环境下的开发和编译配置。理解这些基础知识对于学习C++和软件开发过程至关重要。
*.Visual Studio开发环境的安装与配置 + 了解Visual Studio的安装步骤和配置过程 + 学习如何配置合适的开发环境 * 使用Visual Studio开发环境 + 了解Visual Studio的基本使用方法 + 学习如何设置程序代码行号、...
通过使用VC++,开发者可以创建桌面应用、游戏、服务以及各种类型的系统工具,包括这个获取系统安装软件信息的程序。 源码的学习价值在于它展示了如何使用C++的API或者Windows API来读取注册表,并解析其中与应用...
- 安装Visual Studio 2013。 - 创建第一个Windows Forms应用程序。 - 掌握项目管理的基本操作,包括添加删除文件、引用外部库等。 2. **基础知识** - 变量与常量:理解数据类型的分类及其作用。 - 流程控制...
在VB(Visual Basic)编程中,获取指定文件的大小是一项基本操作,对于文件管理、数据存储和程序性能优化至关重要。本文将深入探讨如何在VB环境中实现这一功能,并提供相关的编程实例,帮助初学者掌握这一技能。 ...
- 支持多种 C/C++ 编译器,如 Microsoft Visual Studio、GCC 等,确保测试代码能够正确编译。 - **1.1.4 适用范围** - 主要适用于 C/C++ 语言开发的软件项目,尤其适合大型、复杂的软件工程项目。 - **1.2 示例...
如果使用的是Visual Studio 2005,则需要额外安装WF扩展——Visual Studio 2005 Extensions for Windows Workflow Foundation。该扩展可以从微软官方下载站获取。另外还需要安装Office SharePoint Server 2007 SDK。...
将这两个文件解压后,需要将库文件添加到Visual Studio的库目录,并链接对应的.lib文件。 接下来,我们需要理解FFmpeg的基本使用流程: 1. 初始化:使用`avformat_open_input`打开视频文件,`avformat_find_stream...
1. 安装Visual Studio:首先需要在Windows系统上安装Visual Studio开发环境,这将提供必要的编译器和其他开发工具。 2. 获取并配置LAMMPS源代码:下载LAMMPS源代码并将其解压到适合的目录。需要注意的是,LAMMPS源...