Seite 1 von 1

Zugriff (ReadOnly) auf Registry unter Win7

Verfasst: 18. Juli 2012 19:04
von Tilman Räger
Hallo,

ich sitze jetzt seit Stunden daran, ein paar Werte (ODBC Verbindungen) aus der Registry auszulesen. Generell ohne Erfolg. Trotz kopieren des Schlüssels aus der Registry und einsetzten im Code sagt er mir
(nach Ersetzen der '\ durch '\\') generell als Result 2 ('File not Found'),
Breche ich die Suche bei Software ab, kann ich den schlüssel öffnen aber spätetens der nächste Eintrag (ODBC) bringt Fehlermeldung 2. Da der Schlüssel exisitiert, bin ich allmählich mit meinem Latein am Ende.

Verrückterweise hat es zu Beginn mal funktioniert, allerdings nur für HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE komme ich bis Software, dann ist Sense!

System: Windows 7 , MinGW-Compiler, Qt 4.7.4

Code:
HKEY hKey = HKEY_CURRENT_USER; // bzw. HKEY_LOCAL_MACHINE
HKEY Key;

Result = RegOpenKeyExA(hKey, "Software\\ODBC", 0, KEY_READ, &Key);

// Result = 2

Selbe Resultate mit RegOpenKeyExW bzw. RegOpenKeyEx (-> RegOpenKeyExW)
Hat irgendjemand noch einen Tip für mich?

Gruss
Tilman

Edit:
Noch eine Merkwürdigkeit: mit QSettings funktioniert der Zugriff unter HKEY_CURRENT_USER korrekt, unter HKEY_LOCAL_MACHINE schlägt er generell fehl (der Grund, warum ich auf die API übergeschwenkt bin. mit der API würfelt der Rechner offensichtlich, mal knallts schon bei \Software, mal gehts eine Ebene weiter.

Re: Zugriff (ReadOnly) auf Registry unter Win7

Verfasst: 19. Juli 2012 22:29
von Troll.Soft
Tilman Räger hat geschrieben:Hat irgendjemand noch einen Tip für mich?
jou
QSettings
Habe damit Zugriff auf alles was ich aus der Registry brauche.
tschüß
Troll.Soft

P.S.: ist allerdings nur unter WinXP getestet

Re: Zugriff (ReadOnly) auf Registry unter Win7

Verfasst: 20. Juli 2012 11:05
von Tilman Räger
Hallo,

Problem mit QSettings ist leider, das auch hier der Zugriff nur für HKEY_CURRENT_USER funktioniert :-(

Bei HKEY_LOCAL_MACHINE das gleiche Verhalten. Kein Fehler, aber es gibt kein Ergebnis.

Zur Verdeutlichung: Schlüssel und Einträge sind in beiden Zweigen identisch (<HKEY>/Software/ODBC/ODBC.ini/ODBC Data Sources/<Einträge>)

speziell diese Einträge will ich auslesen, was unter HKEY_CURRENT_USER auch hervorragend funktioniert (mit QSettings, mit direktem Zugriff würfelt Windows anscheinend, ob ich darf oder nicht :-(
Dieselbe Funktion, nur mit dem Rootkey HKEY_LOCAL_MACHINE liefert (ohne Fehlermeldung) kein Ergebnis, obwohl Daten vorhanden sind.

Gruss
Tilman Räger

Re: Zugriff (ReadOnly) auf Registry unter Win7

Verfasst: 25. Juli 2012 00:26
von Troll.Soft
moin,
war ewig her, das ich was mit QSettings unternommen habe und hatte es offensichtlich falsch im Gedächtnis. Laut Doku arbeit QSettings im Schreibmodus nur beim User ( Local und all). Für den lesenden Zugriff fällt mir unter Qt nichts ein. Für das Schreiben kann ich Dir einen Workaround empfehlen. Alle Daten in eine .reg Datei schreiben und diese Datei mit Doppelklick oder über QProcess starten.
tschüß
Troll.Soft