6 Stimmen

Hinzufügen eines Registrierungsschlüssels in C# zeigt, wenn ich ihn zurücklese, aber nicht in regedit

Ich füge einen Registrierungsschlüssel mit dem folgenden Code hinzu:

var key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(key);

Innerhalb meines Codes kann ich den gefundenen Wert zurücklesen, auch zwischen den Durchläufen. Der Schlüssel wird jedoch nie in regedit angezeigt und das andere Programm, das den Schlüssel lesen sollte, kann ihn nicht sehen.

Das Programm läuft unter Vista mit erweiterten Rechten.

16voto

Michael Petrotta Punkte 58361

Vista eingeführt Registry-Virtualisierung Die "globalen" Änderungen in der Registrierung werden in einigen Fällen an benutzerspezifische Speicherorte umgeleitet:

Die Virtualisierung der Registry ist eine Technologie zur Anwendungskompatibilität die es ermöglicht, Schreibvorgänge in der Registry die globale Auswirkungen haben, um in benutzerspezifische Speicherorte umgeleitet werden. Diese Umleitung ist transparent für Anwendungen, die aus der Registrierung lesen oder in die Registry lesen oder schreiben. Sie wird unterstützt ab Windows Vista unterstützt.

Diese Form der Virtualisierung ist eine vorläufige Anwendungskompatibilität Technologie; Microsoft beabsichtigt, die sie aus zukünftigen Versionen des Windows-Betriebssystem zu entfernen, wenn mehr Anwendungen mit Windows Vista kompatibel gemacht Windows Vista. Daher ist es wichtig, dass Ihre Anwendung nicht von dem Verhalten der der Registry-Virtualisierung im System abhängt.

Sie können dies deaktivieren, indem Sie Anpassen Ihres Anwendungsmanifests oder Sie können Politik ändern für genau die Taste, die Sie gerade berühren.

WOW64 (verwenden Sie eine 64-Bit-Version von Vista?) führt auch eine Umleitung der Registrierung durch . Das hat mich auf ärgerliche Weise getroffen.

Siehe die MSDN-Artikel zur Virtualisierung der Registrierung .

3voto

itowlson Punkte 72130

Das klingt wie ein Registry-Virtualisierung Problem. Wenn der Benutzer Ihrer Anwendung kein Administrator ist, wird das Schreiben in die Registrierung in einen virtuellen Speicher pro Benutzer virtualisiert - wenn Ihr anderes Programm jedoch unter demselben Konto läuft, sollte es immer noch in der Lage sein, diese Einstellung pro Benutzer zu sehen...

Auf der verlinkten Seite erfahren Sie, wo Sie den virtuellen Laden finden, um diese Theorie zu überprüfen.

0voto

Kev Hunter Punkte 2485

Können Sie sagen, welchen Bienenstock Sie in der Registrierung suchen? Meine erste Vermutung wäre, dass Sie vielleicht versehentlich an der falschen Stelle suchen.

0voto

Bevan Punkte 42255

Für mich klingt das so, als ob Sie, auch wenn Sie denken dass Sie mit erhöhten Rechten arbeiten, sind Sie es nicht - und dass der Zugriff auf die Registrierung Ihrer Programme unbemerkt an einen sicheren Ort umgeleitet wird.

Überprüfen Sie Virtualisierung der Registrierung für Einzelheiten.

0voto

Ed S. Punkte 118985

Sie haben vielleicht nicht die Privilegien, die Sie zu haben glauben. Wenn die Benutzerkontensteuerung aktiviert ist, erstellt das Betriebssystem eine virtuelle Registrierung, in die Sie schreiben können, wenn Sie nicht über ausreichende Berechtigungen verfügen, um in die "echte" Registrierung zu schreiben (dasselbe gilt für das Dateisystem).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X