Registry Unterordnernamen einlesen/ausgeben(Problem)

  • VB6

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Snaptu.

    Registry Unterordnernamen einlesen/ausgeben(Problem)

    Hey Leute ^^

    Ich komme einfach nicht drum rum. Ich will von Mozilla Firefox die Version in der Registry auslesen. Der Pfad ist:
    "HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\"

    so aber der Mozilla Ordner darin verändert sich je nach Version die man Installiert hat. Meine:
    "Mozilla Firefox 31.0 (x86 de)"

    Ich lese die Registry immer so aus:
    Spoiler anzeigen

    Quellcode

    1. Dim readValue = My.Computer.Registry.GetValue(
    2. "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player Plugin", "DisplayIcon", Nothing) 'Der Key zum Pfad von Flashplayer
    3. Dim readVersion = My.Computer.Registry.GetValue(
    4. "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player Plugin", "DisplayVersion", Nothing) 'Version zu FlashPlayer


    aber bei Mozilla kann ich den Ordnernamen ja nicht angeben weil dieser immer anders ist. Wie kann ich den Uninstall Ordner in der Registry auslesen und mir alle Unterordner in eine Listview eintragen lassen. Ist sowas möglich ?

    P.S: Google hat entweder keine oder nur veraltete VB Code's... ^^


    Danke an alle Helfer

    MFG
    Peter
    Du öffnest die registry nur bis zum Ordner "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\" dann hast du alle Elemente und nachher
    fragst du den Eintrag ab der "Mozilla Firefox" beinhaltet und davon die Display Version.

    Das:

    VB.NET-Quellcode

    1. Dim uninstallKey As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    2. Using rk As RegistryKey = Registry.LocalMachine.OpenSubKey(uninstallKey)
    3. For Each skName As String In rk.GetSubKeyNames()
    4. Using sk As RegistryKey = rk.OpenSubKey(skName)
    5. ' Nur sinnvolle Info's anzeigen
    6. Console.WriteLine(sk.GetValue("DisplayName") + " " + sk.GetValue("DisplayVersion"))
    7. End Using
    8. Next
    9. End Using


    zeigt dir Name + Version aller installierten Programme.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Snaptu“ ()

    @Snaptu:

    Ich danke dir ^^ endlich kann ich auch die Keys auslesen :D danke, danke, danke

    @Trade:

    naja mann muss immer iwas oben angeben wenn man das Thema erstellt :D aber nichts in der Liste passt so richtig...


    Edit:
    kann man dann noch iwi sagen das er mir von dem "Publisher" Keys nur den von Mozilla ausgibt und dann den Kopletten Registry Pfad von dem Key ? Weil ich die ganzen Versionen ja nicht auf Mozilla zuweißen kann.

    MFG
    Peter

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

    kann man dann noch iwi sagen das er mir von dem "Publisher" Keys nur den von Mozilla ausgibt und dann den Kopletten Registry Pfad von dem Key ? Weil ich die ganzen Versionen ja nicht auf Mozilla zuweißen kann.

    Sprich ich möchte:
    Die Version von Mozilla einzeln auslesen.
    und die InstallLocation einzeln auslesen.

    Aber hier bekomme ich ja Mozilla Firefox 31 das kann ich nicht verwenden um die version aus dem Internet zu vergleichen. Deswegen wäre es cool das man sagen könnte. Wenn Key mit Value "Mozilla" gefunden wurde, gib mir den Pfad davon aus ^^

    MFG
    Peter

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

    Naja du kannst dir doch einfach vom Subkey nicht nur den Value von "DisplayVersion" sondern auch von "InstallLocation" ausgeben lassen?
    Dann hast du gleich zur Version auch den instalationsort. Wieviel Value's du gleichzeitig ausliest ist egal.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    ja Klar, warte ich drück mich anders aus ^^

    Ich möchte im Ordner Mozilla Prüfen welcher Publisher eingetragen ist, aber das Problem mit dem Code ist das er mir doch von Uninstall alle Keys mit Publisher ausgibt, wie soll ich den, angenommen 13 eintrag auf Mozilla zuweißen? müsste dann sagen können, lösch alle Einträge aus der Listview welche nicht Mozilla enthalten ^^

    So?
    Also in meinem Beispiel oben ist ja skname ein String, somit kannst du auch nach teilen aus einem Subkey suchen ;) dazu musst du die Methoden der String Klasse zu nutzen wissen ;) dann bleibt schließlich nur der Subkey über den du suchst. Den öffnest du dann mit OpenSubKey() und lässt dir alle gewünschten Informationen anzeigen.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    okay, kannst du mir nicht weiterhelfen ? :(

    Ich brauche wirklich nur von dem Key "Publisher" und der Value "Mozilla" den Pfad dieses Key's ^^ Ich hab mich vorhher nicht wirklich mit Registry beschäftigt aber komme hier nicht drum rum ^^
    BIIITTE XD

    MFG
    Peter
    Also um das mal zu entwirren :D
    "Mozilla Firefox...." ist ein Subkey d.h. du gehst alle Subkeys in uninstall durch --> GetSubKeyNames()
    jetzt öffnest du dir den gewünschten Subkey

    VB.NET-Quellcode

    1. Using sk As RegistryKey = rk.OpenSubKey(skName)
    2. If skName.Contains("Hugo's Wonderprogram") Then
    3. MessageBox.Show("Hugo's Wonderprogram hat die Version: " & sk.GetValue("DisplayVersion").ToString & vbNewLine _
    4. & "und ist am Pfad " & sk.GetValue("InstallLocation").ToString & " installiert")
    5. End If
    6. End Using


    Ich möchte aber das dir einleuchtet was die String.Contains() Methode tut. Da du ja nicht immer mit einer neuen Version von FF dein Programm umschreiben kannst musst du nach dem
    Aussagekäftigsten Teil des Programm Namens suchen in deinem Fall "Mozilla Firefox".
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.