<?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[RegDeleteKey() funktioniert nicht]]></title><description><![CDATA[<p>Hi,<br />
ich möchte einen Registryeintrag im Schlüssel run löschen. Der Prozedur wird der Name des RegEintrages übergeben. Nur leistet sie das gewünschte leider nicht.</p>
<p>RegDeleteValue() habe ich zum test eingebaut ( brauche ich aber normal nicht oder ? )</p>
<pre><code>void DelAutorunKey(char *Aname){
	HKEY hKey;
	if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT(&quot;Software\\Microsoft\\Windows\\CurrentVersion\\Run&quot;), 0, DELETE, &amp;hKey) == ERROR_SUCCESS ){
		RegDeleteValue(hKey, (LPCTSTR)Aname);
		RegDeleteKey(hKey, (LPCTSTR)Aname);
	}
	RegCloseKey(hKey);
	return;
}
</code></pre>
<p>Wo liegt mein Denkfehler ?</p>
<p>tia mfg ch</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140381/regdeletekey-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 03:49:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140381.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Mar 2006 14:43:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 14:43:33 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich möchte einen Registryeintrag im Schlüssel run löschen. Der Prozedur wird der Name des RegEintrages übergeben. Nur leistet sie das gewünschte leider nicht.</p>
<p>RegDeleteValue() habe ich zum test eingebaut ( brauche ich aber normal nicht oder ? )</p>
<pre><code>void DelAutorunKey(char *Aname){
	HKEY hKey;
	if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT(&quot;Software\\Microsoft\\Windows\\CurrentVersion\\Run&quot;), 0, DELETE, &amp;hKey) == ERROR_SUCCESS ){
		RegDeleteValue(hKey, (LPCTSTR)Aname);
		RegDeleteKey(hKey, (LPCTSTR)Aname);
	}
	RegCloseKey(hKey);
	return;
}
</code></pre>
<p>Wo liegt mein Denkfehler ?</p>
<p>tia mfg ch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016087</guid><dc:creator><![CDATA[c°h°]]></dc:creator><pubDate>Tue, 14 Mar 2006 14:43:33 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 15:30:37 GMT]]></title><description><![CDATA[<p>Also, wenn du den RUN-Schlüssel löschen willst, wird deine Anwendung garantiert blockiert, weil dieser Schlüssel ein System-Schlüssel ist. Ebenso könntest du versuchen, die kernel32.dll zu löschen. Wird dir nicht gelingen. Nur so als Idee. Ansonsten: Was denn, wenn du den Schlüssel nicht öffnen kannst? Ich würde das RegCloseKey noch in die Abfrage mit hinein nehmen. So, und wenn du den Schlüssel jetzt nicht öffnen kannst, passiert gar nichts. Probiers mal mit</p>
<pre><code class="language-cpp">/*...*/ } else {
  cout &lt;&lt;&lt;&quot;Fehler beim Schlüsselöffnen\nProgramm wird beendet.&quot;
  ExitProcess(29);
}
</code></pre>
<p>Unkompliziert und schnell. Und wir geben gleich noch einen Errorlevel, d. h. in dem Fall einen Process Exit Code zurück. Der im übrigen dem Win2k-Fehler-Code für &quot;Kann nicht auf das angegebene Gerät schreiben&quot; entspricht.<br />
Tschö,<br />
nullplan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016115</guid><dc:creator><![CDATA[nullplan002]]></dc:creator><pubDate>Tue, 14 Mar 2006 15:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 15:40:59 GMT]]></title><description><![CDATA[<p>Danke für die Antwort<br />
Geöffnet wird der Schlüssel die else Bedingung hatte ich drin hab sie aber der Übersicht wegen rausgeworfen.</p>
<p>Naja ich will nicht den ganzen Run Ordner löschen sondern nur einen Eintrag.</p>
<p>Mein Programm zeigt die autorun Einträge schon an</p>
<blockquote>
<p>C:\&gt;catz +autorun<br />
Subkeys Gesamt: 1<br />
OptionalComponents<br />
Keys Gesamt: 6<br />
NvCplDaemon RUNDLL32.EXE C:\WINDOWS\System32\NvCpl.dll,NvStartup<br />
nwiz nwiz.exe /install<br />
SiSUSBRG nwiz.exe /install<br />
KernelFaultCheck nwiz.exe /install<br />
AVGCtrl nwiz.exe /install<br />
NvMediaCenter nwiz.exe /install</p>
</blockquote>
<p>nun möchte ich zB &quot;AVGCtrl nwiz.exe /install&quot; löschen das soll dann via<br />
DelAutorunKey(*&quot;AVGCtrl&quot;); möglich sein. Nur das geht irgendwie nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>mfg ch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016124</guid><dc:creator><![CDATA[c°h°]]></dc:creator><pubDate>Tue, 14 Mar 2006 15:40:59 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 15:44:35 GMT]]></title><description><![CDATA[<p>c°h° schrieb:</p>
<blockquote>
<p>Naja ich will nicht den ganzen Run Ordner löschen sondern nur einen Eintrag.</p>
</blockquote>
<p>Dann brauchst du RegDeleteValue, nicht RegDeleteKey.</p>
<p>Wozu die Casts in deinem Code? Und sag jetzt bitte nicht, dass es sonst nicht kompilierbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016129</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 14 Mar 2006 15:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 15:58:06 GMT]]></title><description><![CDATA[<p>Die casts hab ich erst reingemacht nachdem es aus mir unerklärlichen Gründen nicht funktionierte. Klar ist das auch ohne casts compilierbar.</p>
<p>Leider führte RegDeleteValue(hKey, Aname); ja auch nicht zum Ziel - hatte RegDeleteKey schonmal auskommentiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016138</guid><dc:creator><![CDATA[c°h°]]></dc:creator><pubDate>Tue, 14 Mar 2006 15:58:06 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 15:59:08 GMT]]></title><description><![CDATA[<p>Wenn du gar keinen Plan mehr hast: Nimm die REG-Datei-Variante. Lass dein Programm eine kleine Datei mit folgendem Inhalt anlegen:</p>
<pre><code>REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
&lt;Wertname&gt;=-
</code></pre>
<p>Die Leerzeile ist wichtig! Wenn du das hier getan hast, machst du einen Systemaufruf namens &quot;regedit /s &lt;filename.reg&gt;&quot;. So habe ich die Registry immer bearbeitet, als ich noch nie was vom WinAPI gehört habe.<br />
Tschö,<br />
nullplan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016139</guid><dc:creator><![CDATA[nullplan002]]></dc:creator><pubDate>Tue, 14 Mar 2006 15:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 16:00:32 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>c°h° schrieb:</p>
<blockquote>
<p>Naja ich will nicht den ganzen Run Ordner löschen sondern nur einen Eintrag.</p>
</blockquote>
<p>Dann brauchst du RegDeleteValue, nicht RegDeleteKey.</p>
<p>Wozu die Casts in deinem Code? Und sag jetzt bitte nicht, dass es sonst nicht kompilierbar ist.</p>
</blockquote>
<p>mach ich auch immer. ich bin zu faul die dateiendung die bei vc6 immer .cpp ist in .c zu ändern. als ob das jetzt so schlimm wäre. dieses besser-wisser gesülze geht einem irgendwann auf den senkel. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016141</guid><dc:creator><![CDATA[olorf]]></dc:creator><pubDate>Tue, 14 Mar 2006 16:00:32 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 16:05:18 GMT]]></title><description><![CDATA[<p>Casten ist prinzipiell schlimm... es gibt ausnahmen, wo man es muss, aber sonst macht es den COde nur unhandlich und unpflegbar...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016144</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 14 Mar 2006 16:05:18 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 16:09:55 GMT]]></title><description><![CDATA[<p>Naja wie mans per regedit macht ist mir schon klar aber ich will ja ein systemsecurity und analyse Tool für meine paranoiden trojanerverfolgten Bekannten machen. Und hab keine Lust jedem zu erklären wie man die Registry manuell bearbeiten kann. Deshalb sollte mein Programm das schon können und da es ja gehen muss, werde ich auch solange weiterfummeln bis es geht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Bin bei solchen Dingen hartnäckig.</p>
<p>Die cast Frage hat irgendwo schon ihre Berechtigung ich hab mich vor einigen Wochen mit derartigen Problemen rumgeschlagen.</p>
<p>Also so sieht mein aktueller Code aus leider immernoch nicht funktionstüchtig</p>
<pre><code>void DelAutorunKey(char *Aname){
	HKEY hKey;
	if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT(&quot;Software\\Microsoft\\Windows\\CurrentVersion\\Run&quot;), 0, DELETE, &amp;hKey) == ERROR_SUCCESS ){
		RegDeleteValue(hKey, Aname);
		//RegDeleteKey(hKey, (LPCTSTR)Aname);
	}
	else printf(&quot;RegOpenKeyEx()&quot;);
	RegCloseKey(hKey);
	return;
}
</code></pre>
<p>Hat jmd noch eine Idee ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016147</guid><dc:creator><![CDATA[c°c°]]></dc:creator><pubDate>Tue, 14 Mar 2006 16:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 16:12:31 GMT]]></title><description><![CDATA[<p>Ach ich habs ein Recht fehlte folgender Code funktioniert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code>void DelAutorunKey(char *Aname){
	HKEY hKey;
	if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT(&quot;Software\\Microsoft\\Windows\\CurrentVersion\\Run&quot;), 0, DELETE | KEY_SET_VALUE , &amp;hKey) == ERROR_SUCCESS ){
		RegDeleteValue(hKey, Aname);
		//RegDeleteKey(hKey, (LPCTSTR)Aname);
	}
	else printf(&quot;RegOpenKeyEx()&quot;);
	RegCloseKey(hKey);
	return;
}
</code></pre>
<p>MFG c°h°</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016148</guid><dc:creator><![CDATA[c°h°]]></dc:creator><pubDate>Tue, 14 Mar 2006 16:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 16:14:07 GMT]]></title><description><![CDATA[<p>Und für's nächste Mal merken wir uns: Fehlersuchmethode Nummer 1: Rückgabewerte prüfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016150</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 14 Mar 2006 16:14:07 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 16:14:17 GMT]]></title><description><![CDATA[<p>Es ist meistens Hilfreich, wenn Du <strong>genau</strong> sagst, was nicht geht; also z.B. den Fehlercode der zurückgeliefert wurde!<br />
Nebenbei würde ich den Key nicht mit &quot;DELETE&quot; sondern mit &quot;KEY_SET_VALUE&quot; öffnen, dann würde es zumindest der Doku entsprechen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016151</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 14 Mar 2006 16:14:17 GMT</pubDate></item><item><title><![CDATA[Reply to RegDeleteKey() funktioniert nicht on Tue, 14 Mar 2006 16:17:33 GMT]]></title><description><![CDATA[<p>Ich werds mir merken</p>
<p>Danke für eure Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016154</guid><dc:creator><![CDATA[c°h°]]></dc:creator><pubDate>Tue, 14 Mar 2006 16:17:33 GMT</pubDate></item></channel></rss>