| 网站首页 | VB.Net实例分析 | .Net技术文摘 | 下载中心 | VB.Net书籍笔记 | .Net源码 | VBS脚本与组件调用 | Windows2008技术文摘 | 给我们留言 | 
最新公告:

  没有公告

您现在的位置: 乐博网 >> VB.Net实例分析 >> 注册表编程 >> 实例分析正文
最新推荐 更多内容
VB.Net注册表权限编程的分析[乐博网原创]
VB.Net注册表权限编程的分析[乐博网原创]
作者:Shiny    来源:乐博网原创     更新时间:2007-11-5
      此文章为本站(Lob.cn)乐博网原创,可以自由转载和传播,但希望能保留本站的作者和信息来源,谢谢!如果大家对此问题或者关于VB.Net操作注册表的话题感兴趣,就一起加入讨论把他做得更完善吧!

  本实例需要项目引用:

Imports Microsoft.Win32                      '用途 : 注册表操作
Imports System.Security.AccessControl    '用途 : 访问权限控制

首先,对注册表的键增加权限,细分起来共有11种可选的权限类型,它们对应的参数如下:

  Select Case ComboBox1.Text        

            Case "完全控制"
                ObjRegRight = RegistryRights.FullControl
            Case "查询数值"
                ObjRegRight = RegistryRights.QueryValues
            Case "设置数值"
                ObjRegRight = RegistryRights.SetValue
            Case "创建子项"
                ObjRegRight = RegistryRights.CreateSubKey
            Case "枚举子项"
                ObjRegRight = RegistryRights.EnumerateSubKeys
            Case "通知"
                ObjRegRight = RegistryRights.Notify
            Case "创建链接"
                ObjRegRight = RegistryRights.CreateLink
            Case "删除"
                ObjRegRight = RegistryRights.Delete 
            Case "写入DAC"
                ObjRegRight = RegistryRights.WriteKey
            Case "写入所有者"
                ObjRegRight = RegistryRights.TakeOwnership
            Case "读取控制"
                ObjRegRight = RegistryRights.ReadPermissions

  End Select


而每个细分权限 又分"允许"和"拒绝"两种访问控制类型

    Select Case ComboBox2.Text
            Case "允许"
                ObjRegAccess = AccessControlType.Allow
            Case "拒绝"
                ObjRegAccess = AccessControlType.Deny
        End Select

以下为增加注册表键权限的函数

以下两函数中 Account代表系统nt帐户  Rights和ControlType分别为上文提及的权限类型和访问控制类型

  Private Sub AddRegistrySecurity(ByVal Str_FileName As String, ByVal Account As String, ByVal Rights As RegistryRights, ByVal ControlType As AccessControlType)

        Dim RegKey As RegistryKey = Registry.CurrentUser.CreateSubKey("此处填写具体键地址")
        Dim RegkeyAcl As RegistrySecurity = RegKey.GetAccessControl()
        Dim AccessRule As RegistryAccessRule = New RegistryAccessRule(Account, Rights, ControlType)
        RegkeyAcl.AddAccessRule(AccessRule)
        RegKey.SetAccessControl(RegkeyAcl)
        RegKey.Close()

    End Sub

以下为移除注册表键权限的函数

    Private Sub RemoveRegistrySecurity(ByVal Str_FileName As String, ByVal Account As String, ByVal Rights As RegistryRights, ByVal ControlType As AccessControlType)

        Dim RegKey As RegistryKey = Registry.CurrentUser.CreateSubKey("此处填写具体键地址")
        Dim RegkeyAcl As RegistrySecurity = RegKey.GetAccessControl()
        Dim AccessRule As RegistryAccessRule = New RegistryAccessRule(Account, Rights, ControlType)
        RegkeyAcl.RemoveAccessRule(AccessRule)
        RegKey.SetAccessControl(RegkeyAcl)
        RegKey.Close()

    End Sub

乐博网建议大家在做注册表编程调试的时候,采用虚拟机调试 或者备份好本机资料,注册表一旦破坏或者修改不当可能导致系统崩溃,切记!

  • 上一篇:

  • 下一篇:
  • 【字体: 】【打印此文】【关闭窗口
      相关文章:(只显示最新16条)
    VB.Net注册表编程的实例[Dream]
    VB.Net注册表中读取值的实例
    注册表结构分析与vb.net编程的结合
    Registry.LocalMachine属性的实例
    RegistryKey.OpenRemoteBaseKey方法的实例
    Registry.Users属性的实例
    staticGetValue和SetValue操作注册表实例
    RegistryKey.OpenSubKey打开注册表键值实例
    VB.Net注册表键值类型的分析[乐博网原创]
    VB.Net从注册表读取Excel版本信息
    VB.Net操作注册表实例
    VB.NET注册表编程实例

    | 设为首页 | 加入收藏 | 联系站长 | | 友情链接 | 版权申明 |
    乐博网欢迎各种媒体转载我们的原创作品[转载请注明出处];我们鼓励更多VB.Net开发者一起加入研究与探讨;如发现文章访问错误、内容错误或版权疑问、内容有违相关法律(如涉及政治、色情、反动或散布虚假有害信息)等情况,请及时向我们举报,我们将及时纠正!
    联系邮箱:Shiny#vip.qq.com (#替换为@) QQ交流群: 40797788 [闽ICP备05014267号]