从注册表读取程序的版本

原创 2004年05月11日 11:04:00

从注册表读取程序的版本

     
             SunHai

   开发工具:Microsoft Visual Studio .NET 2003
   操作系统:Windows XP

                  Registry 类简介

  Visual Studio .NET读写注册表一般用到Registry类.

  Registry类提供在运行 Windows 的计算机上的注册表中找到的标准根项集。
  注册表是一个存储设备,包含有关应用程序、用户和默认系统设置的信息。例如,应用程序可以使用注册表来存储在应用程序关闭后需要保留的信息,并在应用程序重新加载时访问那些同样的信息。例如,可以存储颜色首选项、屏幕位置或窗口大小。通过将信息存储在注册表中的不同位置,可以针对每个用户来控制这些信息。

  由 Registry 公开的基(根) RegistryKey 实例描绘注册表中的子项和值的基本存储机制。所有项都是只读的,因为注册表依赖于它们的存在。由 Registry 公开的项有: CurrentUser 存储有关用户首选项的信息。 LocalMachine 存储本地计算机的配置信息。 ClassesRoot 存储有关类型(和类)及其属性的信息。 Users 存储有关默认用户配置的信息。 PerformanceData 存储软件组件的性能信息。 CurrentConfig 存储非用户特定的硬件信息。 DynData 存储动态数据。

  一旦标识了希望在其下存储/检索注册表中信息的根项后,可以使用 RegistryKey 类添加或移除子项和操作给定项的值。

  硬件设备可以使用即插即用接口将信息自动放在注册表中。安装设备驱动程序的软件可以通过向标准 API 写入将信息放在注册表中。


   


                 RegistryKey 类

    RegistryKey 类表示 Windows 注册表中的项级节点。此类是注册表封装。

  注册表充当计算机上操作系统和应用程序的中央信息储存库。注册表根据存储在其中的元素的逻辑顺序,以分层形式组织(有关该层次结构中的基级项,请参见 Registry )。在注册表中存储信息时,请根据存储的信息类型选择适当的位置。一定要避免损坏由其他应用程序创建的信息,原因是这样会导致那些应用程序出现意外的行为,并且还会对您自己的应用程序带来不利影响。

  RegistryKeys 是注册表中的基本组织单位,好比是 Windows 资源管理器中的文件夹。特定的项可以有子项(与文件夹可以有子文件夹一样),并且只要用户具有适当的删除权限,且此项不是基项或基项的下一级项,就可以删除此项。每个项还可以有多个关联的值(值好比是文件),用于存储您感兴趣的应用程序的信息。每个值保存一条特定的信息,在需要时可以检索或更新此信息。例如,可以为您的公司创建一个 RegistryKey(在项 HKEY_LOCAL_MACHINE/Software 下),然后为您的公司创建的每个应用程序创建一个子项。每个子项保存特定于该应用程序的信息,如颜色设置、屏幕位置和大小或者可识别的文件扩展名。

  注意,存储在注册表中的信息可由其他应用程序和用户使用,因此不要用注册表存储安全信息或关键的应用程序信息。

  若要获取 RegistryKey 的实例,请使用静态成员 OpenSubKey ,或者使用 Registry 类的静态成员。

  本文主要用到:

  RegistryKey.OpenSubKey 方法:用指定的写访问权限检索指定的子项。

  以只读方式检索子项。

  [Visual Basic] Overloads Public Function OpenSubKey(String) As RegistryKey


  RegistryKey.GetSubKeyNames 方法: 检索包含所有子项名称的字符串数组。

  Public Function GetSubKeyNames() As String ()

                 

                  从注册表读取Excel的版本

  先引入命名空间:
  Imports System
  Imports Microsoft.Win32
 

  要对注册表有所了解,知道我们要读取的位置在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Office。

  Dim rk As RegistryKey = _
  Registry.LocalMachine.OpenSubKey("Software/Microsoft/Office", True)

  ' Get the data from a specified item in the key.
  Dim s As String() = rk.GetSubKeyNames() 

  Dim blnExcel As Boolean = False '本机是否安装Excel
  Dim excelVer As String      'Excel的版本号

  For num As Integer = 0 To s.Length - 1
    Select Case s.GetValue(num)
      Case "11.0", "9.0", "8.0", "5.0", "4.0", "3.0" 'Excel各个版本号
        Dim rk1 As RegistryKey = _
        Registry.LocalMachine.OpenSubKey("Software/Microsoft/Office/" & s.GetValue(num) & "/Excel", True)
        If Not (rk1 Is Nothing) Then 
          blnExcel = True
          excelVer = s.GetValue(num)
          Exit Select
          Exit For
         End If
      End Select
Next

  用RegistryKey类读写注册表是否十分简便呢?
  
  


 
    

                             2004年5月3日

我的QQ:  26624998
我的网站:
http://blog.csdn.net/2066/

【系统信息获取】3,注册表中的当前系统各种信息

1,简介 注册表是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi...
  • dpsying
  • dpsying
  • 2014年02月10日 14:16
  • 1440

从注册表读取程序的版本

从注册表读取程序的版本屠恩海(SunHai)开发工具:Microsoft Visual Studio .NET 2003   操作系统:Windows XP   在编写网络程序时很可能用到自动拨号。比...
  • freexploit
  • freexploit
  • 2004年10月17日 05:17
  • 1030

如何使用vs对程序进行打包?怎么通过注册表获取安装路径?

打包需要连接的信息说多也不多,但是倘若前期不知道打包工具提供的功能,当用户需要更新时,我们只能采取先卸载再安装的笨方法,然而我们可以通过一种相对较为简便的方法来实现更新,那就是插件,那么我们要先知道软...
  • XBLYWL
  • XBLYWL
  • 2015年12月09日 22:12
  • 2137

CPU监控程序出错——无法加载计数器名称数据,因为从注册表读取的索引“”无效

先查看性能监视器( 命令:perfmon ), 会发现确实有错。 cmd 输入: lodctr /r  即可修复。...
  • yenange
  • yenange
  • 2015年08月21日 10:49
  • 2176

IIS服务的有关注册表路径

以下注册表项影响所有的 IIS 服务,而无需对每个服务单独进行设置。在 IIS 默认安装上,可能看不到其中的某些注册表项,这表明它们使用的是默认值。要将这些项设置为非默认值,必须手动创建项并进行设置。...
  • lltaoyy
  • lltaoyy
  • 2010年09月21日 09:39
  • 3324

使用注册表将程序设置为开机自启动

开机总是要打开Rtx, Chrome等应用,无奈又没有在相关程序中找到开机启动设置,所以才在网上找了这个方法,修改注册表即可.找到HKEY_LOCAL_MACHINE\SOFTWARE\Microso...
  • butterfly5211314
  • butterfly5211314
  • 2016年07月30日 08:38
  • 2640

VB-读写注册表 程序

Public Function SysRegControl(Optional ByVal RootKey As RegRootKey = regHKEY_LOCAL_MACHINE, Optional...
  • boovo
  • boovo
  • 2006年03月15日 21:49
  • 1750

利用C#访问注册表获取软件的安装路径

本博文使用C#访问注册表获取软件的安装路径并进行显示。
  • tiana0
  • tiana0
  • 2013年12月15日 10:51
  • 6731

通过注册表获取应用程序的路径

孙广东  2016.7.17http://blog.csdn.net/u010019717      虽然可以硬编码,例如,路径 ="e:\\Program Files\\Unity\\Editor\...
  • u010019717
  • u010019717
  • 2016年07月17日 21:55
  • 2098

关于C#下面windows服务读取注册表的问题

留着以后作备忘
  • mobailwang
  • mobailwang
  • 2016年01月14日 14:19
  • 1583
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从注册表读取程序的版本
举报原因:
原因补充:

(最多只允许输入30个字)