partitionist
Erfahrenes Mitglied
Hab folgenden Code:
Wenn man die Funktion getValue() mit den Parametern aufruft, wird zuerst mit der Funktion KeyExists() geprüft ob der Key existiert. Sobald der Key existiert wird in der Funktion weitergearbeitet, ABER wenn der Wert value nicht gefunden werden kann oder nicht existiert, dann wird szString mit 300 Zeichen von ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ aufgefüllt und zurückgegeben. Jetzt möchte ich die Funktion KeyExists() erweitern indem ich noch ein Parameter ansetze nähmlich mit value. Wie würdet ihr die Funktion KeyExists() ändern
Code:
BOOL KeyExists(HKEY hKey, LPCTSTR lpSubKey)
{
BOOL bRet;
HKEY hSubKey;
LONG lResult;
if(ERROR_SUCCESS != (lResult = RegOpenKeyEx(hKey, lpSubKey, 0, 0, &hSubKey)))
{
bRet = (ERROR_FILE_NOT_FOUND == lResult) ? FALSE : TRUE;
}
else
{
RegCloseKey(hSubKey);
bRet = TRUE;
}
return(bRet);
}
string getValue(HKEY KEY, char *path, char *value)
{
//HKEY KEY = HKEY_LOCAL_MACHINE;
// HKEY_CURRENT_USER;
if(KeyExists(KEY, path) == 1)
{
HKEY key;
DWORD dwType;
DWORD dwSize=300;
char szString[300];
RegOpenKeyEx(KEY, path,0,KEY_READ, &key);
RegQueryValueEx(key,value,NULL,&dwType,(BYTE *)szString,&dwSize);
RegCloseKey(key);
return szString;
}
else
return "ERROR: Key nicht gefunden.";
}