PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++: Wie lese ich einen Wert aus HKEY_CURRENT_USER?


Elemental
2004-10-25, 15:22:31
Hallo allerseits,
ich versuche jetzt seit geraumer Zeit den regitry key

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Siemens SIPLACE\SIPLACE Pro 2.0\Desk]
"CurrentLanguage"="en"


mit C++ aus der registry zu lesen.

Ich versuche das so:

CRegKey reg;
long lRes = reg.Open(HKEY_CURRENT_USER, _T("Software\\Siemens SIPLACE\\SIPLACE Pro 2.0\\Desk\\CurrentLanguage"), KEY_QUERY_VALUE);


Aber lRes ist immer 2, was bedeutet "The system cannot find the file specified."


Was mach ich denn falsch? Der key steht wirklich in meiner registry...


Gruss
Bernd

Exxtreme
2004-10-25, 16:14:44
Versuch's mal mit:

long lRes = reg.Open(HKCU, _T("Software\\Siemens SIPLACE\\SIPLACE Pro 2.0\\Desk\\CurrentLanguage"), KEY_QUERY_VALUE);

Crushinator
2004-10-25, 16:24:01
Mit "Open" öffnet man nur den Schlüssel, und keinen Eintrag. ;)

Versuch's mal bitte hiermit oder mit ähnlichem:


CString sDefaultValue, sMyRegValue = "CurrentLanguage";
DWORD dwBufferSize = MAX_PATH;

long lRes = reg.Open(HKEY_CURRENT_USER,
_T("Software\\Siemens SIPLACE\\SIPLACE Pro 2.0\\Desk"));
if(lRes == ERROR_SUCCESS)
{
reg.QueryValue(sMyRegValue.GetBuffer(dwBufferSize), sDefaultValue,
&dwBufferSize);
sDefaultPath.ReleaseBuffer();
reg.Close;
}

:)

Trap
2004-10-25, 17:06:30
Warum steht im Topic "C++"?

Elemental
2004-10-26, 07:48:29
@Crushinator: Danke. Funktioniert jetzt :smile:

@Trap: Na weil es zum Beispiel in C# ganz anders geht.


Gruss
Bernd