<?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[Bekomm RegQueryValueEx einfach nicht zum laufen]]></title><description><![CDATA[<p>Hi,<br />
ich hab (immernoch) Probleme mit der Registry Funktion &quot;RegQueryValueEx&quot; (<a href="http://msdn2.microsoft.com/en-us/library/ms724911.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms724911.aspx</a>) und zwar will ich nen REG_SZ-Wert auslesen aber bekomme das einfach nicht hin.<br />
Bei vielen Beispielen im Internet gebrauchen die Schreiber dort recht viele, für meinen Zweck unnötige viele (so denk ich das) Variablen da ich die Funktion nur einmal aufrufe und dort können die Werte alles statisch sein.<br />
so weit bin ich nun:</p>
<pre><code class="language-cpp">//hKey wurde mit RegOpenKeyEx zugewiesen (das funktioniert korrekt, da ich ohne Probleme mit hKey schreiben kann)
RegQueryValueEx(hKey,&quot;irgendwas&quot;,NULL,REG_SZ, //als nächstes muss nun eine Variable die den Wert speichert kommen, danach eine Variable die die Größe des Wertes beschreibt
</code></pre>
<p>Ich hab schon alles Mögliche probiert aber bekomme immer eine Fehlermeldung nach der anderen, wenn ich die eine Fehlermeldung vermieden habe kommt die Nächste und wenn es dann mal läuft bekomm ich als ausgelesenen Wert nur murks raus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174860/bekomm-regqueryvalueex-einfach-nicht-zum-laufen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 18:47:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174860.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Mar 2007 18:12:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bekomm RegQueryValueEx einfach nicht zum laufen on Sun, 04 Mar 2007 18:12:31 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich hab (immernoch) Probleme mit der Registry Funktion &quot;RegQueryValueEx&quot; (<a href="http://msdn2.microsoft.com/en-us/library/ms724911.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms724911.aspx</a>) und zwar will ich nen REG_SZ-Wert auslesen aber bekomme das einfach nicht hin.<br />
Bei vielen Beispielen im Internet gebrauchen die Schreiber dort recht viele, für meinen Zweck unnötige viele (so denk ich das) Variablen da ich die Funktion nur einmal aufrufe und dort können die Werte alles statisch sein.<br />
so weit bin ich nun:</p>
<pre><code class="language-cpp">//hKey wurde mit RegOpenKeyEx zugewiesen (das funktioniert korrekt, da ich ohne Probleme mit hKey schreiben kann)
RegQueryValueEx(hKey,&quot;irgendwas&quot;,NULL,REG_SZ, //als nächstes muss nun eine Variable die den Wert speichert kommen, danach eine Variable die die Größe des Wertes beschreibt
</code></pre>
<p>Ich hab schon alles Mögliche probiert aber bekomme immer eine Fehlermeldung nach der anderen, wenn ich die eine Fehlermeldung vermieden habe kommt die Nächste und wenn es dann mal läuft bekomm ich als ausgelesenen Wert nur murks raus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1239122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1239122</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Sun, 04 Mar 2007 18:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomm RegQueryValueEx einfach nicht zum laufen on Sun, 04 Mar 2007 19:02:16 GMT]]></title><description><![CDATA[<p>Wahrscheinlich hast Du die Werte für den Typ und die Buffergröße direkt angegeben. Du mußt aber Zeiger auf diese einsetzen, dann funktionierts. Wenn r = 0, dann war die jeweilige Funktion erfolgreich.</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;conio.h&gt;
#include &lt;stdio.h&gt;

int main()
{
  HKEY k;
  unsigned long r, t, s;
  unsigned char b[160];

  r = RegOpenKeyEx(HKEY_CLASSES_ROOT, &quot;.aom&quot;, 0, KEY_QUERY_VALUE, &amp;k);
  printf(&quot;RegOpenKeyEx: r %i k %08lX\n\n&quot;, r, k);

  t = REG_SZ;
  s = sizeof(b);
  r = RegQueryValueEx(k, &quot;Content Type&quot;, 0, &amp;t, b, &amp;s);
  printf(&quot;RegQueryValueEx: r %i s %u b \&quot;%s\&quot;\n\n&quot;, r, s, b);

  r = RegCloseKey(k);
  printf(&quot;RegCloseKey: r %i\n&quot;, r);

  getch();
  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1239159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1239159</guid><dc:creator><![CDATA[keksekekse]]></dc:creator><pubDate>Sun, 04 Mar 2007 19:02:16 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomm RegQueryValueEx einfach nicht zum laufen on Tue, 06 Mar 2007 18:56:20 GMT]]></title><description><![CDATA[<p>Hi,<br />
sorry hat ein wenig gedauert aber hatte viel zu tun...<br />
Der Code funtzt nun, aber wie bekomme ich den REG_SZ-Wert in einen String?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1240516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1240516</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Tue, 06 Mar 2007 18:56:20 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomm RegQueryValueEx einfach nicht zum laufen on Wed, 07 Mar 2007 07:16:49 GMT]]></title><description><![CDATA[<p>ganz einfach:</p>
<pre><code class="language-cpp">#define CHARLEN 259
HKEY CClass::Open(const std::string&amp; strKey, HKEY hKey){
    HKEY ret=0;
    ::RegOpenKeyEx(hKey, strKey.c_str(), 0, KEY_ALL_ACCESS, &amp;ret);
    return ret;
}
bool CClass::Close(HKEY key){
    return (::RegCloseKey(key)) ? false : true;
}
bool CClass::ReadValue(const std::string&amp; strKey, const std::string&amp; strTitle, std::string&amp; strDest, HKEY hKey){
    HKEY key = Open(strKey, hKey);
    TCHAR *_tstr = new TCHAR[CHARLEN];
    DWORD lpType;
    DWORD lpcbData;
    bool ret = (::RegQueryValueEx(key, strTitle.c_str(), 0, &amp;lpType, reinterpret_cast&lt;LPBYTE&gt;(_tstr), &amp;lpcbData)) ? false : true;
    Close(key);
    strDest = _tstr;
    delete [] _tstr;
    _tstr = 0;
    return ret;
}
</code></pre>
<p>der aufruf dann einfach</p>
<pre><code class="language-cpp">CClass cclass;
std::string destination;
m_cclass.ReadValue(_T(&quot;SOFTWARE\\&quot;), _T(&quot;subkey title&quot;), destination, HKEY_LOCAL_MACHINE);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1240716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1240716</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 07 Mar 2007 07:16:49 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomm RegQueryValueEx einfach nicht zum laufen on Wed, 07 Mar 2007 15:24:57 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>...ganz einfach:....</p>
</blockquote>
<p>Öhm ja.. Wenn ich sowas wie &quot;ganz einfach&quot; lese denk ich an ein paar Zeile Code und nicht an sowas <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title="O_O"
      alt="😮"
    /><br />
Ist das der Standardweg, um ein Keywert in einen String zu bekommen? Ist ja schön, dass du dir so viel mühe gegeben hast mit dem Code (oder war der nur kopiert?) aber, wenn das einfacher geht, dann bin ich ehr für einen kurzen und bündigen weg.<br />
Wenn das natürlich das Standardverfahren ist werd ich das wohl so nutzen müssen.</p>
<p>Zumal was ist CClass? Haste den Code ausm Header kopiert oder wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241043</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Wed, 07 Mar 2007 15:24:57 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomm RegQueryValueEx einfach nicht zum laufen on Wed, 07 Mar 2007 19:10:33 GMT]]></title><description><![CDATA[<p>Also wenn du mal die ganzen Klassen-Sachen weglässt ist der Code allgemein formuliert der Standardweg. Ja. Aber wenn du das einmal getippt hast gehts nun wirklich einfach wie nix.</p>
<p>Greetz<br />
M.T.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241225</guid><dc:creator><![CDATA[Manuel]]></dc:creator><pubDate>Wed, 07 Mar 2007 19:10:33 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomm RegQueryValueEx einfach nicht zum laufen on Wed, 07 Mar 2007 20:03:41 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20441">@Mr</a> Evil:</p>
<blockquote>
<pre><code class="language-cpp">TCHAR *_tstr = new TCHAR[CHARLEN];
</code></pre>
</blockquote>
<p>ist überflüssig. Sollte statisch allokiert werden.</p>
<p>Und das mit dem 'Close' sollte sinnvollerweise über den Destruktor abgehandelt werden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <strong>Preventing-Resource-Leaks</strong>.</p>
<p>EDIT, PS: Man sollte seine (Variablen-)Namen nicht mit einem Unterstricht beginnen lassen, da es so schnell zu Namenkonflikten kommen kann, da diese auch intern vom Compiler verwendet werden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241254</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 07 Mar 2007 20:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomm RegQueryValueEx einfach nicht zum laufen on Thu, 08 Mar 2007 07:36:48 GMT]]></title><description><![CDATA[<p>das war kopiert, darum ist auch CHARLEN angegeben da ich das in einer eigenen define header hab wo ich das dann immer schnell aendern kann</p>
<p>kurzfassung:</p>
<pre><code class="language-cpp">TCHAR *_tstr = new TCHAR[259];
DWORD lpType;
DWORD lpcbData;
HKEY key=0;
::RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T(&quot;SOFTWARE&quot;), 0, KEY_ALL_ACCESS, &amp;key);
::RegQueryValueEx(key, strTitle.c_str(), 0, &amp;lpType, reinterpret_cast&lt;LPBYTE&gt;(_tstr), &amp;lpcbData);
::RegCloseKey(key)
std::string strDest;
strDest = _tstr;
delete [] _tstr;
_tstr = 0;
</code></pre>
<p>ps das mit den unterstrichen mach ich immer wenn etwas fuer Unicode und Multibyte compiliert werden kann, dann sieht man schnell das es so ist<br />
_T(&quot;Text&quot;); // string<br />
_tstr // string zb strd::string oder std::wstring, oder ein *TCHAR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241402</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 08 Mar 2007 07:36:48 GMT</pubDate></item></channel></rss>