知识大全 使用 Visual Basic .NET 访问注册表

Posted 函数

篇首语:没有锯不倒的树,没有敲不响的钟。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用 Visual Basic .NET 访问注册表相关的知识,希望对你有一定的参考价值。

使用 Visual Basic .NET 访问注册表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

使用 Visual Basic NET 函数访问注册表      Visual Basic NET 提供了四个函数以访问注册表 要使用这些函数 必须具有 RegistryPermissionAccess 枚举的 Read 和 Write 权限 以完全信任身份运行的任何代码(根据默认的安全原则 这是指安装在用户本地硬盘驱动器上的任何代码)都具有访问注册表的权限 有关详细信息 请参阅 RegistryPermission Class        注意 不能通过 GetSetting 函数返回段的名称       如果不能保存项设置 将产生一个 ArgumentException 对象 有关此异常的详细信息 请参阅 ArgumentException       下面的示例创建了一个注册表项和两个子项 接着显示第一个项的值 并显示第一个项及其子项的值 然后删除第二个子项 并显示第一个项及其子项的值 以确认删除了第二个子项       创建第一个项   SaveSetting( TestApp Startup FirstKey First )    创建第一个子项   SaveSetting( TestApp FirstKey FirstSubKey FirstSub )    创建第二个子项   SaveSetting( TestApp FirstKey SecondSubKey SecondSub )   Try    写出第一个项的值    Console WriteLine ((GetSetting( TestApp Startup FirstKey ))    写出第一个项及其两个子项    Console WriteLine (GetAllSettings( TestApp Startup ))    Catch e As ArgumentException    Catch e As Exception    Console WriteLine (e GetType ToString)    Finally   End Try   DeleteSetting( TestApp FirstKey SecondSubKey )   Try    Console WriteLine (GetSetting( TestApp Startup FirstKey ))    Console WriteLine (GetAllSettings( TestApp Startup ))    Catch e As ArgumentException    Catch e As Exception    Console WriteLine (e GetType ToString)    Finally   End Try      使用内置注册表访问函数具有以下限制 只能访问位于 HKEY_CURRENT_USER\\Sofare\\VB and VBA Program Settings 下的注册表项 为此 必须登录到系统 因为 HKEY_CURRENT_USER 注册表项仅在登录到系统时才被激活       从一个非交互进程(如 mtx exe)访问的注册表设置应存储在 HKEY_LOCAL_MACHINE\\Sofare\\ 或 HKEY_USER\\DEFAULT\\Sofare 注册表项下       使用 NET 框架访问注册表      由于使用 GetSetting 和 SaveSetting 函数只能访问位于 HKEY_CURRENT_USER\\Sofare\\VB and VBA Program Settings 下的项 因而具有一定的局限性 为此 可以使用 NET 框架 Microsoft Win 名称空间中的 Registry 和 RegistryKey 类 有关详细信息 请参阅 Registry 和 RegistryKey       Registry 类提供基本的注册表项 用于访问子项及其值 基项本身是只读的 下表列出并说明了 Registry 类中提供的七个项       下面的示例显示了如何从 HKEY_CURRENT_USER 中读取一个 DWORD 值      Imports Microsoft Win   Dim regVersion As RegistryKey   Dim keyValue As String   keyValue = Sofare\\\\Microsoft\\\\TestApp\\\\   regVersion = Registry CurrentUser OpenSubKey(keyValue False)   Dim intVersion As Integer =   If (Not regVersion Is Nothing) Then    intVersion = regVersion GetValue( Version )    regVersion Close()   End If      下面的示例将读取 递增 然后向 HKEY_CURRENT_USER 中写入一个 DWORD 值      Imports Microsoft Win   Dim regVersion As RegistryKey   regVersion =   Registry CurrentUser OpenSubKey( SOFARE\\\\Microsoft\\\\TestApp\\\\ True)   If regVersion Is Nothing Then    不存在该项 创建该项    regVersion =   Registry CurrentUser CreateSubKey( SOFARE\\\\Microsoft\\\\TestApp\\\\ )   End If      Dim intVersion As Integer =   If (Not regVersion Is Nothing) Then    intVersion = regVersion GetValue( Version )    intVersion = intVersion +    regVersion SetValue( Version intVersion)    regVersion Close()   End If    权限      System Security Permission 名称空间中的 RegistryPermission 类控制了访问注册表变量的能力 注册表变量不应存储在不具备 RegistryPermission 的代码可以访问的内存位置 同样 在授予权限时 应只授予完成工作所需的最小权限 有关详细信息 请参阅 RegistryPermission 和 System Security Permissions 注册表访问权限值由 RegistryPermissionAccess 枚举定义 有关详细信息 请参阅RegistryPermissionAccess 下表详细说明了其中的各项        注意 如果需要某种权限组合 例如允许读取和写入访问而拒绝创建访问 则可以使用一个 Or 操作来实现 如下所示      RegistryPermissionAccess Write Or RegistryPermissionAccess Read _    HKEY_LOCAL_MACHINE\\SOFARE\\Microsoft\\TestApp         使用注册表编辑器访问注册表      当使用部署项目时 还可以选择使用注册表编辑器来指定要添加到目标计算机的注册表中的注册表项和项值 有关详细信息 请参阅 Registry Editor       访问注册表编辑器       打开一个部署项目        在 View(查看)菜单中 指向 Editor(编辑器) 然后单击 Registry(注册表)       有关在部署项目中使用注册表编辑器的详细信息 请参阅 Registry Settings Management in Deployment        总结      注册表是存储有关应用程序以及各个用户设置的信息的最佳位置 此外 也可以从中查看有关系统硬件或要与之交互的应用程序的信息       对于大多数项目 通过 Visual Basic 运行时函数访问注册表已经足够 但在某些情况下 也可能需要使用 NET 框架的 Registry 类和 RegistryKey 类 这两种操作都很简单 但由于这种访问涉及安全问题 所以要注意避免产生安全隐患 例如在项中包含一个纯文本密码或其他敏感信息等 cha138/Article/program/net/201311/13928

相关参考

知识大全 Visual Basic.NET中使用ADO访问数据库

VisualBasic.NET中使用ADO访问数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 从Visual Basic 6.0到Visual Basic.NET

从VisualBasic6.0到VisualBasic.NET  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 Visual Basic.Net基本语句

VisualBasic.Net基本语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一Try…

知识大全 Visual Basic.Net实现TCP协议

VisualBasic.Net实现TCP协议  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!TCP协

知识大全 实战Visual Basic.Net对话框

实战VisualBasic.Net对话框  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对话框和

知识大全 使用Visual Basic.NET重载事件处理程序

使用VisualBasic.NET重载事件处理程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Visual Basic.NET中组件的叠加使用

VisualBasic.NET中组件的叠加使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  状

知识大全 Visual Basic .Net打造个性化菜单

VisualBasic.Net打造个性化菜单  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  菜单

知识大全 一步一步创建Visual Basic .NET 控件

一步一步创建VisualBasic.NET控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我从来

知识大全 Visual Basic.Net引人注目的语言革新

VisualBasic.Net引人注目的语言革新  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!