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.
Zugriff (ReadOnly) auf Registry unter Win7
-
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
-
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
Re: Zugriff (ReadOnly) auf Registry unter Win7
jouTilman Räger hat geschrieben:Hat irgendjemand noch einen Tip für mich?
Habe damit Zugriff auf alles was ich aus der Registry brauche.QSettings
tschüß
Troll.Soft
P.S.: ist allerdings nur unter WinXP getestet
-
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
Re: Zugriff (ReadOnly) auf Registry unter Win7
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
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
-
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
Re: Zugriff (ReadOnly) auf Registry unter Win7
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
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