hab ein Beispiel für die Registry und ein Problem



  • Hallo Leute!

    Hier hab ich ein Beispie wie ich einen String aus der Registry lese(funktioniert auch):

    bool CRegistryCtrl::Read(CString &retur, CString szSubKey,CString name, HKEY hMainKey)
    {
    	LONG lResult;
    	HKEY hKey;
    	char szVal[255] = {'\0'};
    	DWORD dwSize = 255,dwType;
    
    	if((lResult = RegOpenKeyEx(	hMainKey,szSubKey,0,KEY_QUERY_VALUE,&hKey))!=ERROR_SUCCESS)
    	{
    		#ifdef _DEBUG
    		MessageBox(NULL,"Es wurde kein Eintrag...","Registry",MB_OK);
    		#endif
    		return false;
    	}
    	if(lResult == ERROR_SUCCESS)
    	{
    		RegQueryValueEx(hKey,name,NULL,&dwType,LPBYTE(szVal),&dwSize);
    
    		RegCloseKey(hKey);//Rückgabe nicht beachtet
    
    		retur = szVal;
    
    		return true;
    	}
    	return false;
    }
    

    jetzt mein Problem:
    Ich möchte aus der Registry eine Variable vom Type REG_DWORD auslesen(ist eine zahl).
    Wie Stell ich das an? Bzw: Wie ender ich den obigen Code?
    Hab schon einige Versuche gestartet. Hat nicht geklappt.

    Verzweifle! Bitte hilf!
    SIGI



  • bool CRegistryCtrl::Read(DWORD &retur, CString szSubKey,CString name, HKEY hMainKey)
    {
    	LONG lResult;
    	HKEY hKey;
    	char szVal[255] = {'\0'};
    	DWORD dwSize = 255,dwType;
    
    	if((lResult = RegOpenKeyEx(	hMainKey,szSubKey,0,KEY_QUERY_VALUE,&hKey))!=ERROR_SUCCESS)
    	{
    		#ifdef _DEBUG
    		MessageBox(NULL,"Es wurde kein Eintrag...","Registry",MB_OK);
    		#endif
    		return false;
    	}
    	if(lResult == ERROR_SUCCESS)
    	{
    		RegQueryValueEx(hKey,name,NULL,&dwType,LPBYTE(szVal),&dwSize);
    
    		RegCloseKey(hKey);//Rückgabe nicht beachtet
    
    		retur = *(DWORD*)szVal;
    
    		return true;
    	}
    	return false;
    }
    

Anmelden zum Antworten