Welche Methode benutzen um Regkey zu checken?

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Welche Methode benutzen um Regkey zu checken?

    Hallo,
    Ich hab mir 2 Funktionen geschrieben um zu Prüfen ob ein Registrykey existiert oder nicht.
    Die Funktionen laufen beide Einwandfrei.

    Leider bin ich mir nicht sicher welche ich nehmen soll.


    VB.NET-Quellcode

    1. Private Function Check2() As Boolean
    2. If Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", False).GetValue("MyProgramm") IsNot Nothing Then Return True
    3. Return False
    4. End Function


    VB.NET-Quellcode

    1. Private Function Check() As Boolean
    2. Dim Key As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run")
    3. If Key IsNot Nothing Then
    4. For Each K As String In Key.GetValueNames
    5. If K.ToLower = "MyProgramm".ToLower Then Return True
    6. Next
    7. End If
    8. Return False
    9. End Function


    Mir geht es vorallem darum , das man keine Zugriffsprobleme bei Vista bekommt , weil das Programm sollte möglichst benutzerfreundlich , ohne irgendwelche Zugriffsfehler auch bei einem Standardbenutzer ohne Adminrechte laufen.

    Kann mir jemand sagen welche Funktion wohl besser geeignet ist?
    Hi
    So ein Quatsch. Der bessere Code ist der performantere.
    Zum 1.:

    VB.NET-Quellcode

    1. Private Function Check2() As Boolean
    2. Return Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", False).GetValue("MyProgramm") IsNot Nothing
    3. End Function

    So könntest du ihn auch schreiben.
    Zum 2.:

    VB.NET-Quellcode

    1. Private Function Check() As Boolean
    2. Dim Key As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run")
    3. If Key IsNot Nothing Then
    4. Return Array.TrueForAll(Of String)(key.GetValueNames, Function(arg As String) StringComparer.InvariantCultureIgnoreCase.Equals("MyProgramm", arg))
    5. End If
    6. Return False
    7. End Function


    Der 1. Code ist wohl der bessere.

    Gruß
    ~blaze~