Also habe ich manuell zu dem Registrierungsschlüssel navigiert, der mir Probleme bereitete, und so sah die Registerkarte „Berechtigungen“ aus:

Das brachte mich dazu, darüber nachzudenken, wie ich einen Prozess als Benutzer ausführen kann. System"? Das klingt seltsam, aber anscheinend gibt es einen Systembenutzer, oder? Ich weiß, wie man als Administrator läuft, aber vielleicht ist es auch möglich, als System zu laufen.
Bearbeiten
hier ist mein Code. Grundsätzlich möchte ich alle Registrierungsschlüssel durchgehen:
Code: Select all
class Program
{
// class to store reg key.
[Serializable]
[DebuggerDisplay("Name = {Name}, Val = {value}, type={type}")]
class MyRegKey
{
public string Name;
public object value;
public RegistryValueKind type;
public List SubKeys = new List();
public List Values = new List();
}
static MyRegKey root = new MyRegKey();
static void TraverseTree(RegistryKey key, MyRegKey temp)
{
foreach (var v in key.GetValueNames())
{
var kind = key.GetValueKind(v);
var value = key.GetValue(v, null);
var name = v;
temp.Values.Add(new MyRegKey { Name = name, value = value, type = kind });
}
var x = key.GetSubKeyNames();
for (var i = 0; i < x.Length; i++)
{
RegistryKey productKey;
productKey = key.OpenSubKey(x[i], false); //