tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
744
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    Hallo Leute,

    erstmal bin ich ziemlicher Anfänger in vb.net.
    Ich habe ziemliche Probleme bei downgrades, dass in der Registry in den verschiedenen DLLs falsche Keys drin stehen.
    Da es ziemlich lästig ist, das manuell zu durchsuchen ,dachte ich, ich packe mal mein altes .net aus und versuche das.
    Normalerweise würde ich das auf VB6 machen, aber dort mit Registry zu arbeiten ist mehr als übel.
    Ich weiss von Anfang an, auf welcher Ebene diese Win32-Einträge sind und auch von wo aus ich suchen muss.
    Daher ganz hässlich so gemacht:

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim instance As RegistryKey
            instance = Registry.ClassesRoot
            Dim typelib As RegistryKey
            Dim cnt As Long
            Dim subR As RegistryKey
            Dim subR2 As RegistryKey
            Dim subR3 As RegistryKey
            Dim subR4 As RegistryKey
            Dim item As String
            Dim names() As String
            Dim str As String
            Dim str2 As String
            Dim str3 As String
            Dim str4 As String
            Dim names2() As String
            Dim names3() As String
            Dim names4() As String
     
            If Me.TextBox1 Is Nothing OrElse Me.TextBox1.Text.Length = 0 Then Exit Sub
            typelib = instance.OpenSubKey("TypeLib", True)
            names = typelib.GetSubKeyNames()
            For Each str In names
                [COLOR="#B22222"]subR = typelib.OpenSubKey(str, True)[/COLOR]
                names2 = subR.GetSubKeyNames
                For Each str2 In names2
                    subR2 = subR.OpenSubKey(str2, True)
                    names3 = subR2.GetSubKeyNames
                    For Each str3 In names3
                        subR3 = subR2.OpenSubKey(str3, True)
                        names4 = subR3.GetSubKeyNames
                        For Each str4 In names4
                            If str4.ToLower = "win32" Then
                                subR4 = subR3.OpenSubKey(str4, True)
                                If Not subR4.GetValue("") Is Nothing Then
                                    If InStr(subR4.GetValue(""), Me.TextBox1.Text, CompareMethod.Text) Then
                                        Debug.Print(subR4.Name)
                                        subR3.DeleteSubKey(str4)
                                    End If
                                End If
                            End If
                        Next
                    Next
                Next
            Next
            subR = Nothing
            subR2 = Nothing
            subR3 = Nothing
            subR4 = Nothing
        End Sub


    Sieht alles soweit schön aus, nur meldet er mir eben oben genannten Fehler bei der rot markierten Zeile.
    Laut Internet liegt es an meiner Berechtigung, doch auch wenn ich das VS mit Adminrechte öffne kommt der Fehler. Ausserdem tritt er ja nicht beim ersten Opensubkey auf, daher nehme ich an, es ist etwas anderes.

    Hat grad jemand eine Idee, was da der Fehler ist?




    Wie immer danke ich im Voraus für alle Antworten und Anregungen


    Müller Matthias
     

  2. #2
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    Hiho, habs gestern in der Nacht nochmal gedebbugt und mir ist aufgefallen, dass es tatsächlich nur bei einigen Ebenen auftritt. Anscheinend gibt es Registry-Keys, welche man auch mit Adminrechten nicht als Edit öffnen kann.
    Ich nehme diese daher per resume next raus und mache nur weiter für diese Ebene, wenn err = 0.
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 05.02.07, 15:09
  2. registry
    Von lernen.2007 im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 08.03.06, 09:58
  3. Registry
    Von TheLuCKer im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 04.11.04, 16:52
  4. Registry
    Von W-Stefan im Forum Delphi, Kylix, Pascal
    Antworten: 2
    Letzter Beitrag: 20.09.04, 09:38
  5. PHP und Registry (Win)
    Von RaverHH im Forum PHP
    Antworten: 7
    Letzter Beitrag: 03.07.04, 19:17