<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Registry Value in Schlüssel erstellen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich programmiere zum ersten Mal mit Zugriff auf die Registry von Windows.<br />
Dazu nutze ich ein Pointer auf ein TRegistry-Objekt.</p>
<p>Ich kann ggf. Schlüssel ohne Probleme auch anlegen. Das Problem, welches ich habe ist, dass ich ggf. (sollte ein Value fehlen) ein Value nicht im Schlüssel neu anlegen kann. Wie geht das? Bei mir gibt es nur eine exception. Hier eine Quellcodeauszug.</p>
<pre><code class="language-cpp">void CheckRegistryEntry(TRegistry *pReg)
{
	// Deklaration, Definition der Funktionsvariablen
 //	TRegistry *pReg = new TRegistry;	// Poniter der Instanz von TRegistry

	try {
		pReg-&gt;RootKey = HKEY_CURRENT_USER;	// Festlegen des Rootschlüssels

		// Prüfuen ob Schlüssel in Registry vorhanden ist
		if (pReg-&gt;KeyExists(REG_MAINKEY)) {
			// Prüfung ob Werte im Schlüssel Vorhanden sind
			pReg-&gt;OpenKeyReadOnly(REG_MAINKEY);
			if (!pReg-&gt;ValueExists(REG_VALUELANG)) {
				// Englisch wird als Standart eingetragen
				pReg-&gt;WriteString(REG_VALUELANG, &quot;eng&quot;);
			}
			if (!pReg-&gt;ValueExists(REG_VALUEDPATH)) {
				// Zielpfad wird leer gelassen
				pReg-&gt;WriteString(REG_VALUEDPATH, &quot;&quot;);
			}
			if (!pReg-&gt;ValueExists(REG_VALUEBPATH)) {
				// BackupPfad bleibt leer
				pReg-&gt;WriteString(REG_VALUEBPATH, &quot;&quot;);
			}
		}
		else {
			// Sollte nichteinmal ein Schlüssel SAACKE existieren,
			// müssen alle Schlüssel angelegt werden.
			// Erstellen des Schlüssels
			pReg-&gt;CreateKey(REG_MAINKEY);
			// Öffnen des Schlüssels
			pReg-&gt;OpenKeyReadOnly(REG_MAINKEY);
			// Anlegen von Schlüsselwerten mit Standarteinträge
// Hier tritt Problem auf!!!!!!!!!!!!!
			pReg-&gt;WriteString(REG_VALUELANG, &quot;eng&quot;);
			pReg-&gt;WriteString(REG_VALUEDPATH, &quot;&quot;);
			pReg-&gt;WriteString(REG_VALUEBPATH, &quot;&quot;);

		}
	}
	catch (...) {
		// Sollte ein Fehler bei der Suche nach den Schlüsseln aufgetaucht sein,
		// wird eine Fehlermeldung ausgegeben!
		AnsiString asStr	= &quot;Problem with open the Registry?&quot;;
		Application-&gt;MessageBox(asStr.c_str(),&quot;Warning!&quot; , MB_OK|MB_ICONWARNING);
	}
</code></pre>
<p>Bitte um Hilfe und eine nützliche Lösung.<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207630/registry-value-in-schlüssel-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 05:40:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207630.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Mar 2008 08:02:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Registry Value in Schlüssel erstellen on Mon, 10 Mar 2008 08:02:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich programmiere zum ersten Mal mit Zugriff auf die Registry von Windows.<br />
Dazu nutze ich ein Pointer auf ein TRegistry-Objekt.</p>
<p>Ich kann ggf. Schlüssel ohne Probleme auch anlegen. Das Problem, welches ich habe ist, dass ich ggf. (sollte ein Value fehlen) ein Value nicht im Schlüssel neu anlegen kann. Wie geht das? Bei mir gibt es nur eine exception. Hier eine Quellcodeauszug.</p>
<pre><code class="language-cpp">void CheckRegistryEntry(TRegistry *pReg)
{
	// Deklaration, Definition der Funktionsvariablen
 //	TRegistry *pReg = new TRegistry;	// Poniter der Instanz von TRegistry

	try {
		pReg-&gt;RootKey = HKEY_CURRENT_USER;	// Festlegen des Rootschlüssels

		// Prüfuen ob Schlüssel in Registry vorhanden ist
		if (pReg-&gt;KeyExists(REG_MAINKEY)) {
			// Prüfung ob Werte im Schlüssel Vorhanden sind
			pReg-&gt;OpenKeyReadOnly(REG_MAINKEY);
			if (!pReg-&gt;ValueExists(REG_VALUELANG)) {
				// Englisch wird als Standart eingetragen
				pReg-&gt;WriteString(REG_VALUELANG, &quot;eng&quot;);
			}
			if (!pReg-&gt;ValueExists(REG_VALUEDPATH)) {
				// Zielpfad wird leer gelassen
				pReg-&gt;WriteString(REG_VALUEDPATH, &quot;&quot;);
			}
			if (!pReg-&gt;ValueExists(REG_VALUEBPATH)) {
				// BackupPfad bleibt leer
				pReg-&gt;WriteString(REG_VALUEBPATH, &quot;&quot;);
			}
		}
		else {
			// Sollte nichteinmal ein Schlüssel SAACKE existieren,
			// müssen alle Schlüssel angelegt werden.
			// Erstellen des Schlüssels
			pReg-&gt;CreateKey(REG_MAINKEY);
			// Öffnen des Schlüssels
			pReg-&gt;OpenKeyReadOnly(REG_MAINKEY);
			// Anlegen von Schlüsselwerten mit Standarteinträge
// Hier tritt Problem auf!!!!!!!!!!!!!
			pReg-&gt;WriteString(REG_VALUELANG, &quot;eng&quot;);
			pReg-&gt;WriteString(REG_VALUEDPATH, &quot;&quot;);
			pReg-&gt;WriteString(REG_VALUEBPATH, &quot;&quot;);

		}
	}
	catch (...) {
		// Sollte ein Fehler bei der Suche nach den Schlüsseln aufgetaucht sein,
		// wird eine Fehlermeldung ausgegeben!
		AnsiString asStr	= &quot;Problem with open the Registry?&quot;;
		Application-&gt;MessageBox(asStr.c_str(),&quot;Warning!&quot; , MB_OK|MB_ICONWARNING);
	}
</code></pre>
<p>Bitte um Hilfe und eine nützliche Lösung.<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471254</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Mon, 10 Mar 2008 08:02:19 GMT</pubDate></item><item><title><![CDATA[Reply to Registry Value in Schlüssel erstellen on Mon, 10 Mar 2008 08:28:56 GMT]]></title><description><![CDATA[<p>Habe das Problem schon gefunden.<br />
Anstatt OpenKeyReadOnly() zu verwenden muss man ReadOnly verwenden um einen Schlüssel zu öffnen. Ansonsten gibt es keinen Schreibzugriff.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471270</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Mon, 10 Mar 2008 08:28:56 GMT</pubDate></item></channel></rss>