code:
Imports Microsoft.Win32 Public Class FRM_BrowseRegistry 'Create a Delegate Delegate Sub TV_RegistryAddNodeDelegate(ByVal NodeName As TreeNode) 'Declare a class that contains a method with the same signature as the delegate Public Class ShowtreeNodeClass Sub ShowTreeNodeMethod(ByVal NodeName As TreeNode) FRM_BrowseRegistry.TV_Registry.Nodes.Add(NodeName) End Sub End Class Public Sub FRM_BrowseRegistry_Load(sender As Object, e As EventArgs) Handles MyBase.Load BackgroundWorker1.RunWorkerAsync() End Sub Public Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork 'Get registrykey for HKEY_CLASSES_ROOT' Dim vRegKeyClassesRoot As RegistryKey = Registry.ClassesRoot 'Create TreeNode and get its child nodes in CreateNodes method ' Dim ClassesRootParentNode As New TreeNode(vRegKeyClassesRoot.Name) ClassesRootParentNode = CreateNodes(ClassesRootParentNode, vRegKeyClassesRoot) 'Show the node on treeview, use invoke as the treeview is updated from a background thread Dim MyShowTreeNodeClass As New ShowtreeNodeClass 'Create an instance of the delegate Dim MyShowTreeDelegate As TV_RegistryAddNodeDelegate = AddressOf MyShowTreeNodeClass.ShowTreeNodeMethod MyShowTreeDelegate.Invoke(ClassesRootParentNode) End Sub Private Function CreateNodes(ByVal vParentNode As TreeNode, ByVal vRegKey As RegistryKey) As TreeNode For Each vSubKeyName As String In vRegKey.GetSubKeyNames() Try ' Open subkey and create a childnode with subkeys name on it ' ' Then create childnodes for childnode ' Dim vSubKey As RegistryKey = vRegKey.OpenSubKey(vSubKeyName, False, Security.AccessControl.RegistryRights.ReadKey) Dim vChildNode As New TreeNode(vSubKey.Name) vChildNode = CreateNodes(vChildNode, vSubKey) vParentNode.Nodes.Add(vChildNode) Catch ex As Security.SecurityException ' Lots of security exceptions will be thrown if user is not admin or doesnt have access for whole registry ' Catch ex As Exception End Try Next Return vParentNode End Function End Class 'FRM_BrowseRegistry
Last edited: