Zugriff (ReadOnly) auf Registry unter Win7

Alles rund um die Programmierung mit Qt
Antworten
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Zugriff (ReadOnly) auf Registry unter Win7

Beitrag 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.
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Re: Zugriff (ReadOnly) auf Registry unter Win7

Beitrag 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
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Re: Zugriff (ReadOnly) auf Registry unter Win7

Beitrag 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
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Re: Zugriff (ReadOnly) auf Registry unter Win7

Beitrag 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
Antworten