Ich möchte alle registrierten Dateierweiterungen in HKEY_CLASSES_ROOT
enumerieren und in einer Datatable speichern.
Wie stelle ich das an, da ich ja keine spezielle Erweiterung abfragen
möchte,
sondern eben alle mit Ihrem Standardwert ermitteln möchte.
Danke im Voraus für eine Hilfestellung.
Wolfgang
Hallo Wolfgang,
schön, mal wieder was von dir zu lesen.
Im Prinzip:
Dim names As String()
Dim dt As New DataTable
dt.Columns.Add("keyname")
dt.Columns.Add("defaultValue")
names = Microsoft.Win32.Registry.ClassesRoot.GetSubKeyNames
For Each Name As String In names
Dim subkey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(Name)
Try
Dim defaultValue = subkey.GetValue(Nothing)
dt.Rows.Add(Name, defaultValue)
Finally
subkey.Close()
End Try
Next
Da unter HKCR nicht nur Erweiterungen gespeichert sind - siehst du ja per Regedit - musst
du noch wie gewünscht rausfiltern.
Freundliche Grüße nach Österreich!
--
Armin
> schön, mal wieder was von dir zu lesen.
Ich versuche nicht zu verblöden und habe mich auf ein kleines Problem
gestürzt.
> names = Microsoft.Win32.Registry.ClassesRoot.GetSubKeyNames
> For Each Name As String In names
Das war des Pudels Kern.
Aus den vielen Möglichkeiten der Intellisense habe ich einfach nicht die
Richtige Variante gefunden.
Da ich heute noch mit dem PKW meiner Frau beschäftigt bin, denn sie fährt
auf ein paar Tage nach Grado,
kann ich das erst morgen einbauen.
Besten Dank wieder für Deine Unterstützung
Wolfgang
Hat alles bestens funktioniert.
Ich habe noch die mit den Dateierweiterungen verkn�pften Programme
ermittelt, denn darum ging es.
Der Schl�ssel war
> names = Microsoft.Win32.Registry.ClassesRoot.GetSubKeyNames
> For Each Name As String In names
Auch wenn ich schon Subschl�ssel ermitteln und setzen konnte, einfach alle
SubKeyNames zu ermitteln war das Problem.
Warum ich das in der lokalen Hilfe nicht fand verstehe ich nun nicht.
Letzendlich war es dann dank Deiner Hilfe aber einfach.
Danke
Wolfgang