Registry Tree

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Registry Tree

    Hi Leute.
    Ich wollte mal fragen ob es möglich ist den Ganzen Registry tree auszulesen.
    So etwas in der Art wie bei Ordnern

    VB.NET-Quellcode

    1. For Each obj As Object In My.Computer.FileSystem.GetDirectories("Pfad", FileIO.SearchOption.SearchAllSubDirectories)

    Ich hoffe ihr verssteht was ich meine.
    Danke schonmal
    Lg shutdown

    shutdown schrieb:

    Registry tree
    oder

    shutdown schrieb:

    GetDirectories
    Das eine hat mit dem anderen aber ühaupt nix zu tun.
    Such mal nach Registry auslesen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,

    hab son ding mal zu Trainingszwecken gemacht,

    VB.NET-Quellcode

    1. Imports Microsoft.Win32
    2. Imports System.Threading
    3. Public Class Form1
    4. Private Loading As Thread
    5. Private Delegate Sub PutIn(ByVal Node As TreeNode)
    6. Private Delegate Sub Denied(ByVal Key As String)
    7. Private AccessDeniedList As String
    8. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    9. Loading = New Thread(AddressOf TV_Loading)
    10. Loading.Start()
    11. End Sub
    12. Private Sub TV_Loading()
    13. Dim R_KEY As RegistryKey = Registry.ClassesRoot
    14. Dim TV1_Node_CR As New TreeNode(R_KEY.Name)
    15. TV1_Node_CR = GetReg(R_KEY, TV1_Node_CR)
    16. Me.BeginInvoke(New PutIn(AddressOf AddNodes), TV1_Node_CR)
    17. R_KEY = Registry.CurrentUser
    18. Dim TV1_Node_CU As New TreeNode(R_KEY.Name)
    19. TV1_Node_CU = GetReg(R_KEY, TV1_Node_CU)
    20. Me.BeginInvoke(New PutIn(AddressOf AddNodes), TV1_Node_CU)
    21. R_KEY = Registry.LocalMachine
    22. Dim TV1_Node_LM As New TreeNode(R_KEY.Name)
    23. TV1_Node_LM = GetReg(R_KEY, TV1_Node_LM)
    24. Me.BeginInvoke(New PutIn(AddressOf AddNodes), TV1_Node_LM)
    25. R_KEY = Registry.Users
    26. Dim TV1_Node_U As New TreeNode(R_KEY.Name)
    27. TV1_Node_U = GetReg(R_KEY, TV1_Node_U)
    28. Me.BeginInvoke(New PutIn(AddressOf AddNodes), TV1_Node_U)
    29. R_KEY = Registry.CurrentConfig
    30. Dim TV1_Node_CC As New TreeNode(R_KEY.Name)
    31. TV1_Node_CC = GetReg(R_KEY, TV1_Node_CC)
    32. Me.BeginInvoke(New PutIn(AddressOf AddNodes), TV1_Node_CC)
    33. MessageBox.Show("Auf folgende Keys konnte nicht zugegriffenwerden: " & Environment.NewLine & Environment.NewLine & AccessDeniedList)
    34. End Sub
    35. Private Sub AddNodes(ByVal Node As TreeNode)
    36. TreeView1.Nodes.Add(Node)
    37. End Sub
    38. Private Sub ADenied(ByVal s As String)
    39. AccessDeniedList += s & Environment.NewLine
    40. End Sub
    41. Private Function GetReg(ByVal Reg_Key As RegistryKey, ByVal Par_Node As TreeNode) As TreeNode
    42. For Each sKeyName As String In Reg_Key.GetSubKeyNames()
    43. Try
    44. Dim Sub_Key As RegistryKey = Reg_Key.OpenSubKey(sKeyName, CType(False, RegistryKeyPermissionCheck), Security.AccessControl.RegistryRights.ReadKey)
    45. Dim Ch_Node As New TreeNode(Sub_Key.Name)
    46. Ch_Node = GetReg(Sub_Key, Ch_Node)
    47. Par_Node.Nodes.Add(Ch_Node)
    48. Catch ex As Exception
    49. Me.BeginInvoke(New Denied(AddressOf ADenied), Reg_Key.ToString)
    50. End Try
    51. Next
    52. Return Par_Node
    53. End Function
    54. End Class


    Einfach einen Treeview auffe Form schon funzt der Code. Mit sicherheit nicht das beste Beispiel, der Code stammt noch aus meiner anfangszeit. Der Code ist auch nicht vollständig :P , Values werden damit nicht angezeigt.

    mfG

    Derfuhr

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Derfuhr“ ()

    RodFromGermany schrieb:

    shutdown schrieb:

    Registry tree
    oder

    shutdown schrieb:

    GetDirectories
    Das eine hat mit dem anderen aber ühaupt nix zu tun.
    Such mal nach Registry auslesen.
    Deswegen habe ich ja auch geschrieben: "So etwas in der Art wie bei Ordnern "
    Nur zur verdeutlichung was ich suche.
    Ich habe nach dem Stichwort schon gesucht, aber immer nur soetwas gefunden wie: Value von einem Key auslesen, oder prüfen ob ein Key vorhanden ist, aber nichts zum kompletten auslesen aller keys.

    shutdown schrieb:

    aber nichts zum kompletten auslesen aller keys.
    Möglicherweise hilft es da, nach einem Klick auf Registry mal die F1-Taste zu drücken
    Oder
    Wie beschaffe ich mir Informationen.
    Stichwort MSDN.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!