Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Registry enumerieren

7 views
Skip to first unread message

Wolfgang Badura

unread,
Jun 13, 2011, 2:13:43 PM6/13/11
to
Hallo!

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


Armin Zingler

unread,
Jun 13, 2011, 2:32:30 PM6/13/11
to


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

Wolfgang Badura

unread,
Jun 14, 2011, 2:54:34 AM6/14/11
to
Hallo Armin!
"Armin Zingler" <az.n...@freenet.de> schrieb im Newsbeitrag
news:95n3fo...@mid.uni-berlin.de...

> 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


Wolfgang Badura

unread,
Jun 15, 2011, 9:05:21 AM6/15/11
to
Hallo Armin!
"Armin Zingler" <az.n...@freenet.de> schrieb im Newsbeitrag
news:95n3fo...@mid.uni-berlin.de...
> 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.

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


0 new messages