Registry auslesen: Autostart!
-
Hallo,
Um Registry-Values auszulesen, benutzt man "RegGetValue()" mit
LONG RegGetValue( HKEY hkey, LPCTSTR lpSubKey, LPCTSTR lpValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData );
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/reggetvalue.asp
Aber irgendwie klappt das nur, wenn ich den Namen kenne.
Ich habe hier z.b. diesen Pfad:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
und möchte jetzt alle Einträge inkl. Values in der Konsole ausgeben. Ich habe aber keine Idee wie ich die in einer Loop erfassen könnte um nachher auszudrucken (auf den Blindschirm).Kann mir jemand helfen?
Vielen Dank
Euer Retschistry
-
RegEnumKey oder so.
-
Scheiße, hab genau das selbe Problem!
Ich weiß trotz MSDN nicht wie man die Parameter in dieser Funktion genau nutzen muss! need help
kriege immer den Fehler: error C2078: Zu viele Initialisierungen
Ich will den Wert eines Schlüssels einer Variable übergeben sofern die Funktion diesen nicht direkt als Rückgabewert hat.
Bist du da schon weitergekommen?
ICQ: 323-078-661
-
RegEumKeys um alle Unterschlüssel eines Schlüssels auszulesen (im Registryeditor der Baum links), RegEnumValues um die Werte eines Schlüssels zu enumerieren.
parameter:
LONG RegEnumValue(
HKEY hKey, - hast du mit RegOpenKeyEx / RegCreateKeyEx geöfnet
DWORD dwIndex, - Zähler (den wievielten value willst du?)
LPTSTR lpValueName, - buffer für den namen des values
LPDWORD lpcValueName, - (rein/raus) - größe des buffers
LPDWORD lpReserved, - 0Mit den restlichen Parametern (lpType, lpData, lpcbData) kanst du gleich de Wert abfragen, das funktioniert im prinzip wie bei RegQueryValueEx.
dwIndex fängt bei 0 an, den zählst du hoch, bis die Funktion ERROR_NO_MORE_ITEMS zurückgibt (oder irgendeinen anderen Fehler).
MSDN-Beispiel: Enumerating Registry Subkeys http://msdn2.microsoft.com/en-us/library/ms724256.aspx
-
ähnliches problem: RegGetValue
C:\Dokumente und Einstellungen\neomic\Desktop\regtest.cpp:5: error: `RegGetValue' was not declared in this scope :: === Build finished: 1 errors, 0 warnings ===
ööööööööh o.0, ich benutze des letzten MinGW 3.x.x
habe auch mal nachgeguckt steht auch nich im winreg.h
kann man mir helfen?^^
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39373.html
@neomic:
MSDN schrieb:
Declared in Winreg.h; include Windows.h.
Die muss da aber drin sein :p , Vllt. ne alte SDK ?
-
ich schwör die is da net drinne^^
hab alles eingebunden was geht
hab mich aber jetzt umentschieden weil das angeblich nur in xp und vista klappen soll: RegOpenKeyEx und RegQueryValueEx -> mach mir jetzt ne eigene "RegGetValue" funktion
-
Weil's RegQueryValue heißt?
-
grad nochmal drüber gestolpert -
ReggetValue ist erst ab Windows 2003 Server SP1 bzw. XP x64 verfügbar, und du brauchst natürlich auch das entsprechende Platform SDK.Der einzige Vorteil von ReggetValue gegenüber RegQueryValue ist, daß man mehrere erlaubte Typen angeben kan, man spart sich also evtl. die Typprüfung. Das sollte aber für die meisten Anwendungen kein Grund sein, auf einem 32-Bit Windows XP nicht mehr zu laufen
Nimm also lieber regQueryValue und gut ist.