<?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[Problem mit RegOpenKeyEx()]]></title><description><![CDATA[<p>Hallo,</p>
<p>heute melde ich mich in diesem Forum das erste Mal mit einer Frage.<br />
Ich programmiere mit dem C++Builder (6 und 2006) und habe jetzt folgendes Problem:</p>
<pre><code class="language-cpp">AnsiString TMainForm::GetRegValue(HKEY root, char* RegPath)
{
	char * result = new char[MAX_PATH];
	ZeroMemory(result,MAX_PATH);
	DWORD size = MAX_PATH;
	long error;
	HKEY hKey;
	String value = &quot;xxxxx&quot;;
	error = RegOpenKeyEx(root,RegPath,NULL,KEY_READ,&amp;hKey);
	if (error==ERROR_SUCCESS) {
		ShowMessage(&quot;RegOpenKey erfolgreich.&quot;);
		RegQueryValueEx(hKey,TEXT(&quot;Location&quot;),NULL,NULL,result,&amp;size);		//
		value = AnsiString(result);
	}
	else
		ShowMessage(&quot;Fehler:  &quot;+AnsiString(error));
	return value;
}
</code></pre>
<p>Mit dieser Funktion will ich Werte aus der Registry auslesen.Ich übergebe der Funktion HKEY_CURRENT_USER in der Variablen root und einen existierenden Unterschlüssel in der Variablen RegPath.<br />
Der Rückgabewert von RegOpenKeyEx ist 2.</p>
<p>Wenn ich als root z.B. HKEY_LOCAL_MACHINE sowie einen existierenden Unterschlüssel übergebe, bekomme ich den korrekten Wert dieses Schlüssels als Funktionsrückgabe.</p>
<p>Was ist die Ursache für den Fehler bei HKEY_CURRENT_USER ???</p>
<p>Gruß Udo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/213887/problem-mit-regopenkeyex</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 09:52:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/213887.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 May 2008 07:27:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit RegOpenKeyEx() on Fri, 23 May 2008 07:27:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>heute melde ich mich in diesem Forum das erste Mal mit einer Frage.<br />
Ich programmiere mit dem C++Builder (6 und 2006) und habe jetzt folgendes Problem:</p>
<pre><code class="language-cpp">AnsiString TMainForm::GetRegValue(HKEY root, char* RegPath)
{
	char * result = new char[MAX_PATH];
	ZeroMemory(result,MAX_PATH);
	DWORD size = MAX_PATH;
	long error;
	HKEY hKey;
	String value = &quot;xxxxx&quot;;
	error = RegOpenKeyEx(root,RegPath,NULL,KEY_READ,&amp;hKey);
	if (error==ERROR_SUCCESS) {
		ShowMessage(&quot;RegOpenKey erfolgreich.&quot;);
		RegQueryValueEx(hKey,TEXT(&quot;Location&quot;),NULL,NULL,result,&amp;size);		//
		value = AnsiString(result);
	}
	else
		ShowMessage(&quot;Fehler:  &quot;+AnsiString(error));
	return value;
}
</code></pre>
<p>Mit dieser Funktion will ich Werte aus der Registry auslesen.Ich übergebe der Funktion HKEY_CURRENT_USER in der Variablen root und einen existierenden Unterschlüssel in der Variablen RegPath.<br />
Der Rückgabewert von RegOpenKeyEx ist 2.</p>
<p>Wenn ich als root z.B. HKEY_LOCAL_MACHINE sowie einen existierenden Unterschlüssel übergebe, bekomme ich den korrekten Wert dieses Schlüssels als Funktionsrückgabe.</p>
<p>Was ist die Ursache für den Fehler bei HKEY_CURRENT_USER ???</p>
<p>Gruß Udo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514851</guid><dc:creator><![CDATA[Udo_11]]></dc:creator><pubDate>Fri, 23 May 2008 07:27:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit RegOpenKeyEx() on Fri, 23 May 2008 07:58:29 GMT]]></title><description><![CDATA[<p>If the function fails, the return value is a nonzero error code defined in Winerror.h. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514885</guid><dc:creator><![CDATA[Wilbur]]></dc:creator><pubDate>Fri, 23 May 2008 07:58:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit RegOpenKeyEx() on Fri, 23 May 2008 08:40:31 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe den Code folgendermaßen erweitert:</p>
<pre><code class="language-cpp">AnsiString TMainForm::GetRegValue(HKEY root, char* RegPath)
{
	char * result = new char[MAX_PATH];
	ZeroMemory(result,MAX_PATH);
	DWORD size = MAX_PATH;
	long error;
	HKEY hKey;
	String value = &quot;xxxxx&quot;;
	error = RegOpenKeyEx(root,RegPath,NULL,KEY_READ,&amp;hKey);
	if (error==ERROR_SUCCESS) {
		ShowMessage(&quot;RegOpenKey erfolgreich.&quot;);
		RegQueryValueEx(hKey,TEXT(&quot;nc_path&quot;),NULL,NULL,result,&amp;size);		//
		value = AnsiString(result);
	}
	else {
		LPVOID lpMsgBuf;

		if (FormatMessage(
			FORMAT_MESSAGE_ALLOCATE_BUFFER |
			FORMAT_MESSAGE_FROM_SYSTEM |
			FORMAT_MESSAGE_IGNORE_INSERTS,
			NULL,
			GetLastError(),
			MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
			(LPTSTR) &amp;lpMsgBuf,
			0, NULL )) {

			MessageBox(NULL,(LPCTSTR)lpMsgBuf, TEXT(&quot;Error&quot;), MB_OK);

			LocalFree(lpMsgBuf);
		}
	}
	return value;
}
</code></pre>
<p>Bekomme folgende Ausgabe in der Messagebox: &quot;Vorgang wurde erfolgreich abgeschlossen.&quot;</p>
<p>der Wert von value ist aber immernoch &quot;xxxxx&quot;.</p>
<p>Gruß Udo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514917</guid><dc:creator><![CDATA[Udo_11]]></dc:creator><pubDate>Fri, 23 May 2008 08:40:31 GMT</pubDate></item></channel></rss>