Registry Wert hinzufügen?



  • Ich möchte einen in der Path Umgebungsvariable ein Programm eintragen, da aber hier schon Einträge vorhanden sind möchte ich nicht diese überschreiben. Bisher hatte ich immer folgenden Code verwendet dieser überschreibt aber den ganzen Inhalt, es soll aber nur hinzugefügt werden:

    void writeValue(HKEY KEY, string place, string name, string inhalt)
    	{
    		HKEY hkey;
    
    		RegCreateKey(KEY, place.c_str(), &hkey); 
    		RegOpenKeyEx(KEY,(LPCTSTR)place.c_str(),0, KEY_ALL_ACCESS,&hkey); 
    		RegSetValueEx(hkey, name.c_str(), 0, REG_SZ, (unsigned char *)inhalt.c_str(), inhalt.length());
    		RegCloseKey(hkey);
    	}
    


  • Auslesen, erweitern, Reinschreiben



  • So in etwa, wenn was falsch bitte sagen:

    void AddValue(HKEY KEY, string path, string name, string inhalt)
    		{
    			RegOpenKeyEx(KEY, path,0, KEY_READ, &key);
    			RegQueryValueEx(key, name, NULL, &dwType, (BYTE *)szString, &dwSize);
    			RegCloseKey(key);
    
    			string TMP = szString;
    			TMP += inhalt;
    
    			HKEY hkey;
    
    			RegCreateKey(KEY, place.c_str(), &hkey); 
    			RegOpenKeyEx(KEY,(LPCTSTR)place.c_str(),0, KEY_ALL_ACCESS,&hkey); 
    			RegSetValueEx(hkey, name.c_str(), 0, REG_SZ, (unsigned char *)TMP.c_str(), TMP.length());
    			RegCloseKey(hkey);			
    
    		}
    

Anmelden zum Antworten