Quelle: dotnetpro
Ein eigenes Steuerelement für Verlaufsdaten, Teil 7 13.11.2023, 00:00 Uhr

MRU-Programme ermitteln

In der Windows-Registry gespeicherte Dokumente und Programme auslesen.
Wie man die in der Registry binär abgelegten Infos zu MRU-Dokumenten (Most Recently Used) ausliest, haben Sie in der vorangegangenen Folge dieser Serie [1] erfahren. Allerdings werden nicht alle Einträge, die sich im Registrierschlüssel befinden, auch in der MRUListEx-Zusammenstellung aufgeführt. Aus diesem Grund wird nun die Funk­tion GetNonMRUListExElements definiert, die auch die noch nicht berücksichtigten Einträge ermittelt. Auch diese Funk­tion liefert die Kennungen der Elemente über ein Ganzzahldatenfeld zurück. Entsprechend der Funktion GetMRUListEx werden die Elemente über Indexwerte zusammengestellt. Dafür werden in GetNonMRUListExElements die Elemente der MRUListEx-Zusammenstellung ausgewertet, um im Anschluss daran alle im Registrierschlüssel vorhandenen Schlüsselnamen (RecentDocs_UserKey.GetValueNames) über eine For-Each-Schleife zu durchlaufen. Ob ein Name ein Element der MRUListEx-Aufstellung ist, prüft die Funktion IsMRUListExElement. Nur wenn dies nicht der Fall ist, wird das Element dem Datenfeld Elements hinzugefügt. Das Ergebnis wird an das aufrufende Programm zurückgegeben, vergleiche Listing 1.
Listing 1: Weitere Einträge auslesen
Function GetNonMRUListExElements(

  ByVal CurrentUserSubKey As String) As Integer()

  Dim Counter As Integer = -1

  Dim Elements As Integer() = Nothing

  Dim RecentDocs_UserKey As RegistryKey = 

    CurrentUser.OpenSubKey(CurrentUserSubKey, True)

  Dim SortedElements As Integer() = 

    GetMRUListEx(CurrentUserSubKey)

  For Each ElementName As String _

    In RecentDocs_UserKey.GetValueNames

    If ElementName <> "MRUListEx" Then

      If IsMRUListExElement(SortedElements, 

        ElementName) = False Then

          Counter = Counter + 1

          ReDim Preserve Elements(Counter)

          Elements(Counter) = CInt(ElementName)

      End If

    End If

  Next

  Return Elements

End Function

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar