注册表权限

Security.AccessControl操作注册表权限

作者:Shiny 来源:乐博网收集 更新时间:2007-11-2

Imports System
Imports Microsoft.Win32
Imports System.Security.AccessControl

Public Class Form1

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(Str_FileName)
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
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(Str_FileName)
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
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '列出指定键的所有子键名称

Dim Cnt As Integer
Dim RegKey As RegistryKey = Registry.CurrentUser.CreateSubKey("Software")
Dim SubKeys() As String = RegKey.GetSubKeyNames()
ListBox1.Items.Clear()
If SubKeys.Length > 0 Then
For Cnt = 0 To SubKeys.Length - 1
ListBox1.Items.Add(SubKeys(Cnt))
Next Cnt
End If
RegKey.Close()

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim Usr_Domain As String = "计算机网络域" & "\"
Dim Usr_Name As String = "NT用户"
Dim Reg_Path As String = "键路径"
Try
AddRegistrySecurity(Reg_Path, Usr_Domain & Usr_Name, RegistryRights.ReadPermissions, AccessControlType.Allow)
AddRegistrySecurity(Reg_Path, Usr_Domain & Usr_Name, RegistryRights.Delete, AccessControlType.Allow)
AddRegistrySecurity(Reg_Path, Usr_Domain & Usr_Name, RegistryRights.CreateSubKey, AccessControlType.Allow)
MsgBox("权限添加完毕")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim Usr_Domain As String = "计算机网络域" & "\"
Dim Usr_Name As String = "NT用户"
Dim Reg_Path As String = "键路径"
Try
RemoveRegistrySecurity(Reg_P

ath, Usr_Domain & Usr_Name, RegistryRights.Delete, AccessControlType.Allow)
MsgBox("权限删除完毕")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

Dim Reg_Path As String = ""键路径"
Try
Dim RegKey As RegistryKey = Registry.CurrentUser.CreateSubKey(Reg_Path) '创建或者打开子键
RegKey.SetValue("Title", "481", RegistryValueKind.DWord) '增加键值
RegKey.CreateSubKey("abc")
MsgBox("键增加完毕")
RegKey.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Dim Reg_Path As String = ""键路径"
Try
Dim RegKey As RegistryKey = Registry.CurrentUser.CreateSubKey(Reg_Path) '创建或者打开子键
Registry.CurrentUser.DeleteSubKeyTree(Reg_Path)
MsgBox("键删除完毕")
RegKey.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub
End Class



相关文档
最新文档