<?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[Windows würgt CreateProcess ab]]></title><description><![CDATA[<p>Hi, ich mal wieder ...</p>
<p>Mein Programm ruft mit CreateProcess() einen anderen Prozess auf, der auch brav ausgeführt wird. Mein Hauptprogramm geht dabei in SW_HIDE und wartet bis der Childprozess beendet wird. Das funktioniert auch, allerdings wenn ich Windows beende ohne vorher den Childprozess beendet zu haben, stürtzen beide Programme ab. Kann ich mit CreateProcess() das nicht irgendwie regeln, so dass bei Windows-ende einfach das Programm ganz normal beendet wird ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196982/windows-würgt-createprocess-ab</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 16:08:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196982.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Nov 2007 12:07:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Mon, 05 Nov 2007 12:07:18 GMT]]></title><description><![CDATA[<p>Hi, ich mal wieder ...</p>
<p>Mein Programm ruft mit CreateProcess() einen anderen Prozess auf, der auch brav ausgeführt wird. Mein Hauptprogramm geht dabei in SW_HIDE und wartet bis der Childprozess beendet wird. Das funktioniert auch, allerdings wenn ich Windows beende ohne vorher den Childprozess beendet zu haben, stürtzen beide Programme ab. Kann ich mit CreateProcess() das nicht irgendwie regeln, so dass bei Windows-ende einfach das Programm ganz normal beendet wird ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397962</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Mon, 05 Nov 2007 12:07:18 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Mon, 05 Nov 2007 12:27:11 GMT]]></title><description><![CDATA[<p>Dir Programme stürzen nicht ab, sondenr werden von Windows nach angemessener Zeit terminiert.</p>
<p>Das einfachste ist, dass das Programm, das gestartet wird von selbst bei Beenden von Windows terminiert. Dann beendet sich auch Dein Programm wenn es WM_ENDSESSION behandelt. Es gibt eine Timeout Ziet die jedem Programm zusteht.</p>
<p>Oder aber Du behandelst WM_ENDSESSION auch in dem wartenden Programm, dann darfst Du nicht WaitForSingleObject verwenden sondern Du musst MsgWaitForMultipleObjects verwenden und weiterhin die Nachrichtenschleife laufen lassen, damit WM_ENDSESSION/WM_QUERYENDSESSION behandelt werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397977</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 05 Nov 2007 12:27:11 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Mon, 05 Nov 2007 12:30:06 GMT]]></title><description><![CDATA[<p>Ok danke ,ich denke ich versuch das erste <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/1397983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397983</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Mon, 05 Nov 2007 12:30:06 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Tue, 06 Nov 2007 08:18:56 GMT]]></title><description><![CDATA[<p>Also irgendwie verstehe ich nicht wie das gehen soll.</p>
<p>So müsste es doch eigenttlich gehen :</p>
<pre><code class="language-cpp">if(WM_ENDSESSION == TRUE)
	{

	CloseHandle( pi.hProcess );

	}
</code></pre>
<p>pi ist der handle zu meinem Prozess, wenn Windows die WM_ENDESSION Nachricht bekommt, soll er den Prozess beenden...nur warum geht es nicht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398074</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Tue, 06 Nov 2007 08:18:56 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Tue, 06 Nov 2007 09:05:15 GMT]]></title><description><![CDATA[<p>oder kann ich das auch irgendwie so machen :</p>
<pre><code class="language-cpp">if(ExitWindows)
{
CloseHandle( pi.hProcess );
}
</code></pre>
<p>?? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398465</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Tue, 06 Nov 2007 09:05:15 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Tue, 06 Nov 2007 09:11:53 GMT]]></title><description><![CDATA[<p>Du hast entweder keine Ahnung, wie Windowsanwendungen funktionieren, oder eine sehr abstruse Vorstellung davon, wie if arbeitet.</p>
<p>Martin Richter hat dir eigentlich alles gesagt, was du wissen musst. Wenn du das nicht umsetzen kannst, hast du wohl noch ein paar Lücken bei den Grundlagen.</p>
<p>Hat dein Programm überhaupt eine Nachrichtenschleife?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398473</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 06 Nov 2007 09:11:53 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Wed, 07 Nov 2007 15:20:46 GMT]]></title><description><![CDATA[<p>Also nochmal von vorne :</p>
<p>Ich kann also das neue Programm mit WM_ENDSESSION schliessen , wenn Windows sagt : &quot;hey leute, jetzt wird beendet&quot;. Aber wie soll das genau funktionieren ? Ich verstehs nich.</p>
<p>Aus der msdn :</p>
<pre><code class="language-cpp">LRESULT CALLBACK WindowProc( HWND hwnd,      // handle to window 
                             UINT uMsg,      // message identifier 
                             WPARAM wParam,  // end-session option 
                             LPARAM lParam );// logoff option
</code></pre>
<p>werd ich nicht schlau...</p>
<p>Bisher hab ich halt WM_ENDSESSION/OnEndSession (mit Hilfe von Wizard) in die Nachrichtentabelle erstellen lassen. Aber wenn ich jetzt hier :</p>
<pre><code class="language-cpp">void CTimerDlg::OnEndSession(BOOL bEnding)
{
	CDialog::OnEndSession(bEnding);

	// TODO: Fügen Sie hier Ihren Meldungsbehandlungscode ein.

}
</code></pre>
<p>zb. AfxMessageBox(&quot;hi&quot;); eingebe, dachte ich das da ne Meldung kommen würde bevor Windows beendet ( während das gestartete Programm läuft).</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/2803">@MFK</a> : Also soweit ich das mitgekriegt hab ist die Nachrichtenschleife in der WinMain. Und die ist bei MFC doch gar nicht sichtbar. Wie meinst du das ? Meintest du vll. WinAPI ? Oder verwechsle ich hier was ??? *Total confused*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399244</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Wed, 07 Nov 2007 15:20:46 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Wed, 07 Nov 2007 20:59:18 GMT]]></title><description><![CDATA[<p>man mag es kaum glauben aber es geht tatsächlich so <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>
<p>Nur hab ich immer noch ein Problem. Mit folgendem Code hab ich getestet ob es geht. Wenn Windows beendet wird zeigt er mir die Message:&quot;HI&quot; bevor es geschlossen wird.</p>
<pre><code class="language-cpp">void CTimerDlg::OnEndSession(BOOL bEnding)
{

if (bEnding)

AfxMessageBox(&quot;HI&quot;);

CDialog::OnEndSession(bEnding);

}
</code></pre>
<p>Aber wenn der zweite Prozess läuft den ich ja mit meinem Programm starte dann funtzt das nicht...warum das nicht funtzt kann ich mir eigentlich selber beantworten, nur weiss ich leider nicht wie ichs löse.<br />
Wie kann ich dem Compiler klar machen das ich nicht den Hauptprozess schliessen will sondern den, den ich mit CreateProcess geöffnet habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399453</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Wed, 07 Nov 2007 20:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Thu, 08 Nov 2007 14:44:01 GMT]]></title><description><![CDATA[<p>Der der mit CreateProcess erzeugt wurde muss sich selbst beenden <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="😉"
    /><br />
Natürlich kannst du den Prozess einfach abschiessen (TerminateProcess), aber das ist wohl etwas brutal und sollte wirklich nur als Notlösung verwendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399796</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 08 Nov 2007 14:44:01 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Thu, 08 Nov 2007 17:58:19 GMT]]></title><description><![CDATA[<p>Er soll sich ja nicht einfach so von selbst beenden, sondern nur wenn man ihn schliesst oder Windows beendet wird. Wenn Windows beendet wird bekomme ich aber keine Rückmeldung weil mein Hauptprozess versteckt ist ( SW_HIDE ). Und auf den neuen Prozess hab ich irgendwie kein Zugriff mit WM_ENDSESSION <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>EDIT : Käse, nicht weil der Prozess versteckt ist, sondern weil der Prozess &quot;wartet&quot; geht das nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399811</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Thu, 08 Nov 2007 17:58:19 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Fri, 09 Nov 2007 08:02:21 GMT]]></title><description><![CDATA[<p>Das zweite Programm sollte eigentlich auf die WM_ENDSESSION Anforderungen reagieren - und sich schließen. Sobald das passiert, wird auch das erste Programm aktiv und beendet sich.</p>
<p>(Alternativ kannst du das Warten in einen zweiten Thread auslagern und im Hauptprogramm auf Windows-Nachrichten warten)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400123</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 09 Nov 2007 08:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to Windows würgt CreateProcess ab on Fri, 09 Nov 2007 12:46:00 GMT]]></title><description><![CDATA[<p>Jo so hab ichs mir vorgestellt, aber während das Programm wartet reagiert leider nix auf WM_ENDSESSION. Hmmm das warten in einem zweiten Thread, jo das probier ich mal, danke für den Hinweis</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400275</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Fri, 09 Nov 2007 12:46:00 GMT</pubDate></item></channel></rss>