<?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[Prozess öffnen und wieder schliessen]]></title><description><![CDATA[<p>Ich möchte einen Prozess öffnen (das klappt) und beim beenden des Programms wieder schliessen.<br />
Der Öffnugscode sieht so aus:</p>
<pre><code class="language-cpp">STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &amp;si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &amp;pi, sizeof(pi) );
CreateProcess(datei_pfad,NULL,NULL,NULL,false,0,NULL,ordner_pfad,&amp;si,&amp;pi);
</code></pre>
<p>Aber wie kann ich den geöffneten Prozess wieder schliessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171235/prozess-öffnen-und-wieder-schliessen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 12:32:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171235.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 23 Jan 2007 17:37:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Tue, 23 Jan 2007 17:37:52 GMT]]></title><description><![CDATA[<p>Ich möchte einen Prozess öffnen (das klappt) und beim beenden des Programms wieder schliessen.<br />
Der Öffnugscode sieht so aus:</p>
<pre><code class="language-cpp">STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &amp;si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &amp;pi, sizeof(pi) );
CreateProcess(datei_pfad,NULL,NULL,NULL,false,0,NULL,ordner_pfad,&amp;si,&amp;pi);
</code></pre>
<p>Aber wie kann ich den geöffneten Prozess wieder schliessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1215419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215419</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Tue, 23 Jan 2007 17:37:52 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Tue, 23 Jan 2007 20:45:46 GMT]]></title><description><![CDATA[<p><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="➡"
    /> <a href="http://msdn2.microsoft.com/en-us/library/ms686722.aspx" rel="nofollow">Terminating a Process (MSDN)</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1215555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215555</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 23 Jan 2007 20:45:46 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 07:55:25 GMT]]></title><description><![CDATA[<p>Nur der Vollständigkeit halber:<br />
TerminateProcess ist der absolut falsche Weg.<br />
Ein Prozess oder Program muss sich mehr oder weniger aus freien Stücken selbst beenden. Andernfalls sind Leaks vorprogrammiert.<br />
Wenn es sich um ein GUI Programm handlelt genügt es oft WM_CLOSE an das Programm zu senden. Aber auch dann wird oft der User ja noch zum Speichern seiner Daten aufgefordert.<br />
Ein Programm einfach terminieren geht so nicht, zumindest nicht aus dem Parentprozess. Außer Du hast intelligenten IPC eingebaut.</p>
<p>In vielen Fällen ist es einfacher alles per OLE-Automation zu steuern...<br />
Was willst Du machen? Darauf kommt es an!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1215721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215721</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 24 Jan 2007 07:55:25 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 15:44:46 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Nur der Vollständigkeit halber:<br />
TerminateProcess ist der absolut falsche Weg.</p>
</blockquote>
<p>Jops, aber steht ja auch in dem Artikel drin. Ist ja vergleichbar mit <em>TerminateThread</em> <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="😉"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216121</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 24 Jan 2007 15:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 16:00:34 GMT]]></title><description><![CDATA[<p>Also das Programm, welches ich mit meinem Programm starten möchte, ist &quot;apache.exe&quot;.<br />
Wenn mein Programm geschlossen wird, soll dieses auch geschlossen werden.<br />
&quot;apache.exe&quot; ist ein Server, der andere von mir programmierte php-Dateien parst, welche mit einem Internet-Browser angezeigt werden können. Die Ausgaben von &quot;apache.exe&quot; werden nur im Browser ausgegeben.</p>
<blockquote>
<p>Aber auch dann wird oft der User ja noch zum Speichern seiner Daten aufgefordert.</p>
</blockquote>
<p>Dies kommt nicht vor, von daher egal.</p>
<p>(Ich hab die Funktion CloseHandle() gefunden. Mein Problem dabnei ist jedoch: welche Variable aus CreateProcess ist die Handle-Variable?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216137</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Wed, 24 Jan 2007 16:00:34 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 16:10:03 GMT]]></title><description><![CDATA[<blockquote>
<p>Bocky&lt; schrieb:<br />
(Ich hab die Funktion CloseHandle() gefunden. Mein Problem dabnei ist jedoch: welche Variable aus CreateProcess ist die Handle-Variable?)</p>
</blockquote>
<p>Der Handle der erstellten Prozesses steht im Member <em>hProcess</em> der Struktur <em>PROCESS_INFORMATION</em>. Aber was bringt Dir das ? CloseHandle gibt nur die Resourcen bezüglich des Handles frei, beendet aber nicht den Prozess!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216147</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 24 Jan 2007 16:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 16:37:40 GMT]]></title><description><![CDATA[<p>Mit welcher Funktion kann ich das dann beenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216169</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Wed, 24 Jan 2007 16:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 16:48:20 GMT]]></title><description><![CDATA[<blockquote>
<p>Bocky&lt; schrieb:<br />
Mit welcher Funktion kann ich das dann beenden?</p>
</blockquote>
<p>Ich hab doch bereits einen Link gepostet und ne ergänzende Erläuterung von Martin Richter hast Du auch schon bekommen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216183</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 24 Jan 2007 16:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 17:19:27 GMT]]></title><description><![CDATA[<pre><code>DWORD code;
GetExitCodeProcess(pi.hProcess, &amp;code);
TerminateProcess(pi.hProcess,code);
CloseHandle(pi.hProcess);
</code></pre>
<p>Auch wenns mit TerminateProcess() ist, so funktionierts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216207</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Wed, 24 Jan 2007 17:19:27 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 17:34:12 GMT]]></title><description><![CDATA[<blockquote>
<p>Bocky&lt; schrieb:</p>
<pre><code>DWORD code;
GetExitCodeProcess(pi.hProcess, &amp;code);
TerminateProcess(pi.hProcess,code);
CloseHandle(pi.hProcess);
</code></pre>
<p>Auch wenns mit TerminateProcess() ist, so funktionierts.</p>
</blockquote>
<p>Es ist und bleibt der falsche weg. Du musst Das Programm veranlassen, dass es sich selbst beendet.</p>
<p>&lt;selbstgespräch&gt;In diesem Forum redet man wirklich oft genug gegen die Wand...&lt;/selbstgespräch&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216218</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 24 Jan 2007 17:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 18:00:30 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>&lt;selbstgespräch&gt;In diesem Forum redet man wirklich oft genug gegen die Wand...&lt;/selbstgespräch&gt;</p>
</blockquote>
<p>&lt;<sub>sich-ein-misch</sub>&gt; jap da kann ich Dir nur zustimmen!&lt;<sub>/sich-ein-misch</sub>&gt;</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216238</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 24 Jan 2007 18:00:30 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 19:41:27 GMT]]></title><description><![CDATA[<p>Im netz steht, dass der aufruf von WM_CLOSE mit der Funktion WindowProc gemacht werden muss:</p>
<pre><code class="language-cpp">WindowProc( hWnd, WM_CLOSE, 0, 0);
</code></pre>
<p>Bei mir kommen da folgende Fehlermeldungen:</p>
<p>-&gt; Cannot convert 'void *' to 'Messages::TMessage'<br />
-&gt; Type mismatch in parameter 'Message'<br />
-&gt; Extra parameter in call</p>
<p>(die header-Dateien hab ich eingebunden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216324</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Wed, 24 Jan 2007 19:41:27 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 24 Jan 2007 19:45:59 GMT]]></title><description><![CDATA[<blockquote>
<p>Bocky&lt; schrieb:<br />
Im netz steht, dass der aufruf von WM_CLOSE mit der Funktion WindowProc gemacht werden muss:</p>
</blockquote>
<p>Ne das stimmt nicht. Man ruft dafür Send- oder PostMessage auf. Die <em>WndProc</em> kümmert sich lediglich um die Bearbeitung der Nachricht(en).</p>
<p>PS: Kann es sein, dass Du mit Borland arbeitest ( <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="➡"
    /> &quot;Cannot convert 'void *' to 'Messages::<strong>TMessage</strong>' &quot;) ? Dann könnte es sein, dass Du hier im falschen Subforum bist.</p>
<p>EDIT, Beispiel vergessen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> :</p>
<pre><code class="language-cpp">SendMessage(hWndOfAppToClose, WM_CLOSE, 0, 0L);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1216337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216337</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 24 Jan 2007 19:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Thu, 25 Jan 2007 15:59:21 GMT]]></title><description><![CDATA[<p>Also, jetzt sind zwar alle Fehlermeldungen weg, der Prozess wird trotzdem nicht beendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1217011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1217011</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Thu, 25 Jan 2007 15:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Thu, 25 Jan 2007 21:56:53 GMT]]></title><description><![CDATA[<p>Dann prüf mal mit der Spy++/WinSpy++ welche Nachrichten beim 'korrekten' Beenden des Programm zuletzt, also durch den manuell ausgelößten Befehl ( <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="➡"
    /> *click*), an das Programm gesendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1217247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1217247</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 25 Jan 2007 21:56:53 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Thu, 25 Jan 2007 22:15:53 GMT]]></title><description><![CDATA[<p>Hat der apache überhaupt nen Fenster?<br />
btw:<br />
<a href="http://www.activsoftware.com/apache/usage.cfm" rel="nofollow">http://www.activsoftware.com/apache/usage.cfm</a> (&quot;apache.exe -k stop&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1217260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1217260</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Thu, 25 Jan 2007 22:15:53 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Fri, 26 Jan 2007 22:00:59 GMT]]></title><description><![CDATA[<p>zu greeky:<br />
1. da kommt ein Konsolenfenster<br />
2. &quot;apache.exe -k stop&quot; funktioniert nur, wenn der Apache als Dienst installiert wird, was aber bei windows 95/98 nicht funktioniert. Genauso z.B. &quot;apache.exe -k start&quot; funktioniert nur, wenn der apache als dienst installiert ist.</p>
<p>zu CodeFinder:<br />
1. Wie mach ich das? ich find nichts<br />
2. Im Quelltext vom WinSpy++ wird das mit &quot;PostMessage(hwnd, WM_CLOSE, 0 , 0 );&quot; gemacht. Das funktioniert bei mir aber nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1217863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1217863</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Fri, 26 Jan 2007 22:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Fri, 26 Jan 2007 23:01:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">// apache starten mit
CreateProcess(datei_pfad,NULL,NULL,NULL,false,CREATE_NEW_PROCESS_GROUP,NULL,ordner_pfad,&amp;si,&amp;pi);

// apache beenden mit
GenerateConsoleCtrlEvent (CTRL_C_EVENT,pi.dwProcessId);

// oder mit
GenerateConsoleCtrlEvent (CTRL_BREAK_EVENT,pi.dwProcessId);
</code></pre>
<p>So geht das bei den meisten Konsolenanwendungen die via &quot;CreateProcess&quot; gestartet wurden.</p>
<p>Hoffentlich reagiert der apache darauf auch mit einem sauberen Shutdown.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1217881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1217881</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 26 Jan 2007 23:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Sun, 28 Jan 2007 13:29:56 GMT]]></title><description><![CDATA[<p>Wenn ich apache mit meinem Programm aufmache und dann in der Apache-Konsole Strg+C drücke, passiert nichts.<br />
Bei &quot;GenerateConsoleCtrlEvent (CTRL_C_EVENT,pi.dwProcessId);&quot; und &quot;GenerateConsoleCtrlEvent (CTRL_BREAK_EVENT,pi.dwProcessId);&quot; passiert auch nichts.</p>
<p>Wenn ich aber den apache über den Windows-Explorer aufrufe und dann Strg+C drücke, wird er beendet.</p>
<p>Mir ist noch was aufgefallen: Beim Start von Apache pbder mein Programm, wird in der Ecke von der Konsole das Konsolensymbol angezeigt. Beim Start über den Explorer wird jedoch das Symbol vom Apache angezeigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218590</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Sun, 28 Jan 2007 13:29:56 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Sun, 28 Jan 2007 16:28:32 GMT]]></title><description><![CDATA[<p>Den über mein Programm geöffneten Apache-Prozess kann ich nicht mit Strg+C schliessen, wenn ich CreateProcess(datei_pfad,NULL,NULL,NULL,false,CREATE_NEW_PROCESS_GROUP,NULL,ordner_pfad,&amp;si,&amp;pi);<br />
verwende; wenn ich aber anstatt CREATE_NEW_PROCESS_GROUP irgendetwas anderes benutze, kann ich Apache mit Strg+C schliessen. Es wird jedoch in keinem Fall von GenerateConsoleCtrlEvent (CTRL_C_EVENT,pi.dwProcessId); geschlossen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218701</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Sun, 28 Jan 2007 16:28:32 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Sun, 28 Jan 2007 16:46:48 GMT]]></title><description><![CDATA[<p>Lass den Prozess &quot;sich selbst&quot; beenden:</p>
<pre><code>void beende(HANDLE hProcess)
{
FARPROC addr;
LPVOID r_addr;
DWORD lpNumberOfBytesWritten;

addr=GetProcAddress(GetModuleHandle(&quot;KERNEL32.DLL&quot;), &quot;ExitProcess&quot;);
r_addr=VirtualAllocEx(hProcess, NULL, (DWORD)strlen(&quot;0&quot;), MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE)
WriteProcessMemory(hProcess, r_addr, (LPVOID)&quot;0&quot;, (DWORD)strlen(&quot;0&quot;), &amp;lpNumberOfBytesWritten);
CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)addr, r_addr, 0, NULL);
}
</code></pre>
<p>An diese Funktion musste lediglich das Prozesshandle (pInfo.hProcess) uebergeben und fertig, es koentne zwar passieren, dass dein AV ein bisschen rummeckert, aber der Prozess ist danach weg <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218718</guid><dc:creator><![CDATA[dmesg]]></dc:creator><pubDate>Sun, 28 Jan 2007 16:46:48 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Mon, 29 Jan 2007 00:16:33 GMT]]></title><description><![CDATA[<p>dmesg schrieb:</p>
<blockquote>
<p>Lass den Prozess &quot;sich selbst&quot; beenden:</p>
<pre><code>void beende(HANDLE hProcess)
{
FARPROC addr;
LPVOID r_addr;
DWORD lpNumberOfBytesWritten;

addr=GetProcAddress(GetModuleHandle(&quot;KERNEL32.DLL&quot;), &quot;ExitProcess&quot;);
r_addr=VirtualAllocEx(hProcess, NULL, (DWORD)strlen(&quot;0&quot;), MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE)
WriteProcessMemory(hProcess, r_addr, (LPVOID)&quot;0&quot;, (DWORD)strlen(&quot;0&quot;), &amp;lpNumberOfBytesWritten);
CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)addr, r_addr, 0, NULL);
}
</code></pre>
<p>An diese Funktion musste lediglich das Prozesshandle (pInfo.hProcess) uebergeben und fertig, es koentne zwar passieren, dass dein AV ein bisschen rummeckert, aber der Prozess ist danach weg <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="😉"
    /></p>
</blockquote>
<p>entsprechende aufräumarbeiten macht das programm aber dann auch nicht. es selbst weiß ja nicht, dass du in ihm exitprocess aufrufst. dann kannste gleich terminateprocess benutzen.<br />
und wenn ich jetzt nix verwechsel sprach der threadersteller was von win98 ... createremotethread gabs da auch noch net.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218938</guid><dc:creator><![CDATA[Black Shadow]]></dc:creator><pubDate>Mon, 29 Jan 2007 00:16:33 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Mon, 29 Jan 2007 21:28:50 GMT]]></title><description><![CDATA[<p>Jo, der Prozess is weg.<br />
Aber Apache startet noch einen Unterprozess, welcher mit der Funktion nicht beendet wird. <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>Wenn ich die Konsole aber normal mit einem Klick auf das X schließe, wird auch dieser Prozess geschlossen.</p>
<p>Oder könnte man das so machen:<br />
1. Apache wird gestartet und dann die Konsole geschlossen, damit man sie nicht mehr sieht (der andere Prozess bleibt erhalten; dieser ist für die Ausgabe an den Browser verantwortlich <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="🙂"
    /> ).<br />
2. Beim Beenden meines Programms wird der noch offene Apache-Prozess geschlossen<br />
Kann man das so machen?</p>
<p>(Zeile 7: &quot;;&quot; vergessen <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="😉"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219455</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Mon, 29 Jan 2007 21:28:50 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Mon, 29 Jan 2007 21:44:20 GMT]]></title><description><![CDATA[<p>Evtl. &quot;Main-Windows&quot; holen und WM_CLOSE hin senden?<br />
<a href="http://msdn.microsoft.com/msdnmag/issues/02/07/CQA/" rel="nofollow">http://msdn.microsoft.com/msdnmag/issues/02/07/CQA/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219463</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Mon, 29 Jan 2007 21:44:20 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Tue, 30 Jan 2007 16:47:29 GMT]]></title><description><![CDATA[<p>Da steht nicht, wie man das mit C++ macht (bzw. der, der das geschrieben hat, hat auch geschrieben, das er nicht gefunden hat, wie man das in C/C++ macht)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220004</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Tue, 30 Jan 2007 16:47:29 GMT</pubDate></item><item><title><![CDATA[Reply to Prozess öffnen und wieder schliessen on Wed, 31 Jan 2007 12:57:29 GMT]]></title><description><![CDATA[<p>Vergessen: Die Konsole, die ich schliessen will ist der Main-Prozess</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220454</guid><dc:creator><![CDATA[*gt*Bocky*lt*]]></dc:creator><pubDate>Wed, 31 Jan 2007 12:57:29 GMT</pubDate></item></channel></rss>