<?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[Neuer Desktop]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe hier einen Code gefunden, wie man einen neuen Desktop erzeugt und es<br />
wieder beendet:</p>
<pre><code class="language-cpp">hOriginalThread=GetThreadDesktop(GetCurrentThreadId());
 OpenInputDesktop(0,FALSE,DESKTOP_SWITCHDESKTOP);

 hNewDesktop=CreateDesktop(&quot;Sicher&quot;,NULL,NULL,0,GENERIC_ALL,NULL);
 SetThreadDesktop(hNewDesktop);
 SwitchDesktop(hNewDesktop);

 //CreateThread()
 //CreateProcess();

 SwitchDesktop(hOriginalThread);
 SetThreadDesktop(hOriginalThread);

 CloseDesktop(hNewDesktop);
</code></pre>
<p>Das Problem hierbei ist, dass wenn ich bei CreateProcess was eingebe, dann erscheint das neue Fenster zwar im neuen Desktop, der aber wieder sofort verschwindet. Deswegen wollte ich, dass das Programm auf das Ende meines aufgerufenen Programms wartet und dann erst zu &quot;SwitchDesktop(hOriginalThread)... kommt.<br />
Und könnte mir noch jemand erklären, was man mit CreateThread() eigentlich machen kann?</p>
<p>Vielen Dank<br />
Toddy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194617/neuer-desktop</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 03:28:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194617.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Oct 2007 06:43:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Neuer Desktop on Tue, 09 Oct 2007 06:43:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe hier einen Code gefunden, wie man einen neuen Desktop erzeugt und es<br />
wieder beendet:</p>
<pre><code class="language-cpp">hOriginalThread=GetThreadDesktop(GetCurrentThreadId());
 OpenInputDesktop(0,FALSE,DESKTOP_SWITCHDESKTOP);

 hNewDesktop=CreateDesktop(&quot;Sicher&quot;,NULL,NULL,0,GENERIC_ALL,NULL);
 SetThreadDesktop(hNewDesktop);
 SwitchDesktop(hNewDesktop);

 //CreateThread()
 //CreateProcess();

 SwitchDesktop(hOriginalThread);
 SetThreadDesktop(hOriginalThread);

 CloseDesktop(hNewDesktop);
</code></pre>
<p>Das Problem hierbei ist, dass wenn ich bei CreateProcess was eingebe, dann erscheint das neue Fenster zwar im neuen Desktop, der aber wieder sofort verschwindet. Deswegen wollte ich, dass das Programm auf das Ende meines aufgerufenen Programms wartet und dann erst zu &quot;SwitchDesktop(hOriginalThread)... kommt.<br />
Und könnte mir noch jemand erklären, was man mit CreateThread() eigentlich machen kann?</p>
<p>Vielen Dank<br />
Toddy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380965</guid><dc:creator><![CDATA[Toddy]]></dc:creator><pubDate>Tue, 09 Oct 2007 06:43:40 GMT</pubDate></item><item><title><![CDATA[Reply to Neuer Desktop on Tue, 09 Oct 2007 07:04:02 GMT]]></title><description><![CDATA[<p>Toddy schrieb:</p>
<blockquote>
<p>Das Problem hierbei ist, dass wenn ich bei CreateProcess was eingebe, dann erscheint das neue Fenster zwar im neuen Desktop, der aber wieder sofort verschwindet. Deswegen wollte ich, dass das Programm auf das Ende meines aufgerufenen Programms wartet und dann erst zu &quot;SwitchDesktop(hOriginalThread)... kommt.</p>
</blockquote>
<p>Und wo ist das Problem? Auf das Prozessende kannst du mit WaitForSingleObject() warten.</p>
<blockquote>
<p>Und könnte mir noch jemand erklären, was man mit CreateThread() eigentlich machen kann?</p>
</blockquote>
<p>Einen zweiten Thread in deinem gerade laufenden Programm starten - der dann parallel zum &quot;Haupt&quot;thread abgearbeitet werden kann (z.B. für langwierige Berechnungen, die im Hintergrund laufen sollen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380971</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 09 Oct 2007 07:04:02 GMT</pubDate></item><item><title><![CDATA[Reply to Neuer Desktop on Tue, 09 Oct 2007 08:28:04 GMT]]></title><description><![CDATA[<p>Hallo CStoll,</p>
<p>noch ne Frage: Was muss ich denn bei WaitForSingleObject als Handle übergeben, wenn ich den mit CreateProcess aufgerufenen Prozess überprüfen will?</p>
<p>MFG Toddy</p>
<p>Edit: Ah, OK es hat geklappt. Ich hab was übersehen....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381009</guid><dc:creator><![CDATA[Toddy]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:28:04 GMT</pubDate></item><item><title><![CDATA[Reply to Neuer Desktop on Tue, 09 Oct 2007 08:26:48 GMT]]></title><description><![CDATA[<p>Was wohl - natürlich das Prozess-Handle (das packt CreateProcess in den Member 'hProcess' der übergebenen PROCESS_INFORMATION (letzter Parameter der Funktion)).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381014</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:26:48 GMT</pubDate></item></channel></rss>