| 

.NET C# Java Javascript Exception

0
Ich bin gerade dabei ein Tool zu programmieren, das in der Registry bestimmte Werte sucht und in eine Textbox ausgibt. Die Suche an sich funktioniert. Dies rufe ich so auf:
String erg = "";
string search = textSearch.Text;
erg = FindKey(Registry.ClassesRoot, search);
erg += FindKey(Registry.CurrentUser, search);
erg += FindKey(Registry.LocalMachine, search);
erg += FindKey(Registry.Users, search);
erg += FindKey(Registry.CurrentConfig, search);
textOutput.Text = erg;

FindKey ist eine Methode, die mir die Schlüssel und Pfade in der Registry als String zurückgibt. Wenn ich die Methode ausführe, dann habe ich eine Menge Pfade die mit
HKEY_CLASSES_ROOT

anfangen. Doch es kommen keine anderen (wie bei CurrentUser, LocalMachine oder ähnliches). Stattdessen bekomme ich bei denen folgende Ausgabe:
Requested registry access is not allowed.
Requested registry access is not allowed.
Requested registry access is not allowed.
Requested registry access is not allowed.
Requested registry access is not allowed.

Dasselbe wenn ich das Programm mit Administratorrechten laufen lasse.

Was kann ich tun, damit ich Zugriff auf die anderen Registryklassen bekomme?
12.08.2011
starki 603 1 1 8
2 Antworten
0
Habe mich mal umgesehen und spontan einen Ansatz auf Stackoverflow gesehen. Vielleicht hilft er dir ja auch schon weiter:

- Eigentliche Frage
- Lösung

Ist leider nicht mein Gebiet was die UAC unter C# angeht, daher kann ich nur linken :-/
12.08.2011
Dustin Klein 2,9k 2 9
0
Mittlerweile hab ich eine Lösung für mein Problem gefunden: Ich hab eine Funktion erstellt
bool CanOpenSubkey(RegistryKey key, string subkey)
{
try
{
key.OpenSubKey(subkey);
return true;
}
catch (SecurityException)
{
return false;
}
}

die immer wieder abfragt, ob man den Unterschlüssel aufrufen darf oder nicht. Ich hab deswegen die Funktion geschrieben, weil ich gemerkt hab, sobald mein Programm einen Schlüssel aufmachen will, auf den selbst der Administrator keinen Zugriff hat, dann wird die gesamte Oberschlüssel mit der Meldung
Requested registry access is not allowed.

zurückgegeben. Mit dieser Funktion prüfe ich nur, ob der Unterschlüssel zu öffnen ist oder nicht. Wenn nicht, dann geht das Programm einfach zum nächsten Schlüssel über.
12.08.2011
starki 603 1 1 8

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH