Frage

Zunächst werde ich sagen, dass ich gelesen habe den Posten hier , und ich bin immer noch Probleme haben.

Ich versuche, ein VB6 Bild mit einem Bienenstock-basierte Registrierung zu erstellen, die tatsächlich speichert die Ergebnisse durch einen Neustart.

  • Ich habe die Hive-Einstellungen in dem Katalog-Artikel markiert.
  • In Common.reg habe ich die Lage des Stockes gesetzt ([HKEY_LOCAL_MACHINE \ init \ BootVars] "SystemHive") auf "Hard Drive \ Registry" (Hinweis: Der Blitz zeigt sich als ein Gerät namens „Hard Drive „)
  • In Common.reg, ich habe gesetzt "Flags" = dword: 3 in dem gleichen Ort, um die Geräte-Manager mit dem Speichermanager geladen auszukommen
  • Ich überprüft haben, dass diese Einstellungen eingewickelt werden in "; HIVE BOOT Abschnitt"

Dies ist, wo es beginnt zu umfallen. Alles compiliert in Ordnung, aber auf dem Zielsystem, wenn es Stiefel, die ich erhalten:

  • Ein Verzeichnis namens "Hard Disk", wo eine Registrierung gesetzt wird
  • Ein Gerät, Name genannt "Hard Disk2", wo der permanente Blitz
  • Jede an der Registrierung vorgenommenen Änderungen werden auf einem Neustart verloren

Was bin ich immer noch? Warum ist die Registrierung auf dem Flash gespeichert werden?

eigenartige, wenn ich ein zufällige Datei / Verzeichnis in der Registrierung Verzeichnis zu erstellen, es ist immer noch da nach einem Neustart, so dass, obwohl dieses Verzeichnis nicht auf der anderen Partition ist (wo ich versuchte, es zu setzen), es erscheint dauerhaft zu sein. Wenn es dauerhaft ist, warum Registry Einstellungen nicht speichern (dh Ethernet-Adapter IP-Adressen?)

Ich bin keine spezifischen Profile verwenden, so dass ich mit einem Verlust bin, was der letzte Schritt ist, diese hive Registrierung eines permanenter Speicher zu machen.

War es hilfreich?

Lösung

Erstens, ich hoffe, dass Sie nicht direkt zu ändern sind Common.reg. Sie sollten nie öffentlich-Code ändern . Wenn Sie öffentliche Registrierungsschlüssel ändern wollen, müssen Sie sie in Ihrem project.reg oder platform.reg gesetzt und sie werden die öffentlichen Einstellungen außer Kraft setzen.

SystemHive sollte auf den Namen des Verzeichnisses, in dem Sie ohne den Namen des Geräts, die Strukturdateien gespeichert werden sollen eingestellt werden . In deinem Fall: "SystemHive"="Registry\\system.hv"
Zitat aus der MSDN Quelle :

  

Sie nicht den Namen des Dateisystems auf dem die Datei gespeichert wird. Das System wird bestimmen, welches Dateisystem auf der Grundlage anderen Registrierungseinstellungen zu verwenden.


Update in Bezug auf Ihren zweiten Kommentar ( Quelle ):

  

Wenn dieser Wert vorhanden unter HKEY_LOCAL_MACHINE ist, zeigt es an, dass die Systemstruktur erfolgreich wiederhergestellt wurde. Falls vorhanden unter HKEY_CURRENT_USER ist, zeigt es an, dass die Benutzerstruktur erfolgreich gestellt wurde.

Sind Sie die Änderungen Spülen Sie machen?
Überprüfen Sie, dass Sie nicht über eine wierd Implementierung von IOCTL_HAL_GET_HIVE_CLEAN_FLAG haben ( Quelle .) - Ihr System könnte einen wahren Wert seine Rückkehr der Systemregistrierung jedes Boot zu reinigen


Sie können einen Thread hinzuzufügen, die Ihre Registrierung regelmäßig spülen wird (obwohl ich empfehle es ohne würde und jede Anwendung bündig seine eigenen Änderungen lassen) - PRJ_ENABLE_REGFLUSH_THREAD

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top