欢迎光临
我们一直在努力

从注册表读取程序的版本-.NET教程,VB.Net语言

建站超值云服务器,限时71元/月

从注册表读取程序的版本

     

             屠恩海(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类读写注册表是否十分简便呢?

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 从注册表读取程序的版本-.NET教程,VB.Net语言
分享到: 更多 (0)