Registry auslesen?
-
Hallo,
wie kann ich einen Wert aus der Registry auslesen, nach RegQueryValue() hab ich schon gesucht aber ich mache immer bei diesen Codes was falsch.
Mfg. BNS
-
Da du im "VCL/CLX (Borland C++ Builder)"-Forum postest, benutze doch die Boardmittel (In der Hilfe nach TRegistry suchen).
ich mache immer bei diesen Codes was falsch
Das wirst du uns schon zeigen müssen (Quellcode) oder sollen wir raten?
-
Z.b der Code:
long lResult = 0; HKEY hKey; DWORD dwValueType = 0; DWORD dwValueLen = 0; CString strValue; DWORD dwValue; lResult = RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Ados\\ChequeLoader",0,KEY_ALL_ACCESS,&hKey) ; if (lResult == ERROR_SUCCESS) { lResult = RegQueryValueEx(hKey, "PathInputFile", 0, &dwValueType, 0, &dwValueLen); if (lResult == ERROR_SUCCESS) { if (dwValueType == REG_SZ) { LPSTR lpReturnStr = new char[dwValueLen]; lResult = RegQueryValueEx(hKey, "PathInputFile", 0, &dwValueType, (unsigned char *)lpReturnStr, &dwValueLen); if (lResult == ERROR_SUCCESS) { strValue = lpReturnStr; } delete lpReturnStr; } if (dwValueType == REG_DWORD) { lResult = RegQueryValueEx(hKey, strName, 0, &dwValueType, (unsigned char *)&dwValue, &dwValueLen); } } RegCloseKey (hKey);Da sagt er mir immer das diese Variablen (??) mit Str nicht definiert wurden, wenn ich sie definiere sagt er das da was unenspeckted ist, ich hab meherer solcher Beispiele probiert und würde mich über ein Beispiel von euch freuen da die bei denen (oben) einfach nicht durchblicke.
Mfg. BNS
-
-
Gut aber wenn ich z.B. das einbaue:
TRegistry *MyReg = new TRegistry; MyReg->RootKey = HKEY_LOCAL_MACHINE; TStringList *StringList = new TStringList; TRegistry *Registry = new TRegistry; Registry->RootKey = HKEY_LOCAL_MACHINE; if (Registry->OpenKey("SOFTWARE\\Zahlenraten\\Option", false) == true) Label1->Caption = Registry->ReadString("Wallpaper"); delete Registry; delete StringList; MyReg->CloseKey(); delete MyReg;Kommt das er das Symbol TRegistry nicht kennt.
-
Versuche es mal mit:
#include <registry.hpp>
-
Noch ein Problem mit dem Code oben kann ich immer nur einen Wert auslesen, den wenn ich es so mache:
TRegistry *MyReg = new TRegistry; MyReg->RootKey = HKEY_LOCAL_MACHINE; TStringList *StringList = new TStringList; TRegistry *Registry = new TRegistry; Registry->RootKey = HKEY_LOCAL_MACHINE; if (Registry->OpenKey("SOFTWARE\\Name\\Option", false) == true) Label1->Caption = Registry->ReadString("Wallpaper"); if (Registry->OpenKey("SOFTWARE\\Name\\Option", false) == true) Label2->Caption = Registry->ReadString("Wallpaper2"); delete Registry; delete StringList; MyReg->CloseKey(); delete MyReg;Dan gibt er mir immer nur einen aus, wie kann ich den anderen Wert auch auslesen lassen ohne den Code doppelt und reifach zu benutzen?
-
Hallo
Ist das so schwer zu erkennen?
if (Registry->OpenKey("SOFTWARE\\Name\\Option", false)) { Label1->Caption = Registry->ReadString("Wallpaper"); Label2->Caption = Registry->ReadString("Wallpaper2"); }bis bald
akari