<?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[stdin&#x2F;stdout]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich war mir nicht sicher, ob ich es bei WinAPI oder C++ posten sollte,<br />
also bitte nicht schlagen * g *.</p>
<p>Ich programmiere zur Zeit eine eigene Kommandozeile nach Vorbild der Linux-Shell.<br />
Dafür nutze ich die Windows-API^^.</p>
<p>Natürlich wollte ich, dass auch normale Konsolenprogramme innerhalb meiner Konsole ausgeführt werden können.<br />
Dazu müsste ich aber irgendwie nach stdin (bzw. GetStdHandle(STD_INPUT_HANDLE))<br />
schreiben, um zum Beispiel WM_KEYDOWN oder WM_CHAR an das Programm weiterzuleiten.</p>
<p>Andersherum müsste ich die stdout umbiegen, damit ich alle Programmausgaben in meinem Fenster anzeigen kann.<br />
also müsste ich aus (denke ich zumindest) aus stdout (bzw. GetStdHandle(STD_OUTPUT_HANDLE))lesen können.</p>
<p>außerdem umbiegen und des Zugriffs auf stdin und stdout wäre noch ein Problem.</p>
<p>bei ShellExecute sehe ich irgendwie keinen Weg die Handle umzulenken.<br />
zudem würde ShellExecute, da mein Programm ja ein Windows-Programm ist, automatisch eine neue Konsole erstellen,<br />
was ich ja eigentlich nicht möchte.<br />
das selbe Problem besteht bei system();</p>
<p>Somit hätten ich also 3 Fragen:<br />
1.: wie biege ich die Handles um?<br />
2.: wie greife ich anschließend auf sie zu? (auf stdin schreiben und von stdout lesen)<br />
3.: wie verhindere ich die Erstellung eines neuen Konsolenfensters für Konsolenprogramme?</p>
<p>Bin für jede Hilfe dankbar</p>
<p>MfG DrakoXP</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/195069/stdin-stdout</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 02:13:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195069.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 Oct 2007 16:34:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to stdin&#x2F;stdout on Sat, 13 Oct 2007 16:34:29 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich war mir nicht sicher, ob ich es bei WinAPI oder C++ posten sollte,<br />
also bitte nicht schlagen * g *.</p>
<p>Ich programmiere zur Zeit eine eigene Kommandozeile nach Vorbild der Linux-Shell.<br />
Dafür nutze ich die Windows-API^^.</p>
<p>Natürlich wollte ich, dass auch normale Konsolenprogramme innerhalb meiner Konsole ausgeführt werden können.<br />
Dazu müsste ich aber irgendwie nach stdin (bzw. GetStdHandle(STD_INPUT_HANDLE))<br />
schreiben, um zum Beispiel WM_KEYDOWN oder WM_CHAR an das Programm weiterzuleiten.</p>
<p>Andersherum müsste ich die stdout umbiegen, damit ich alle Programmausgaben in meinem Fenster anzeigen kann.<br />
also müsste ich aus (denke ich zumindest) aus stdout (bzw. GetStdHandle(STD_OUTPUT_HANDLE))lesen können.</p>
<p>außerdem umbiegen und des Zugriffs auf stdin und stdout wäre noch ein Problem.</p>
<p>bei ShellExecute sehe ich irgendwie keinen Weg die Handle umzulenken.<br />
zudem würde ShellExecute, da mein Programm ja ein Windows-Programm ist, automatisch eine neue Konsole erstellen,<br />
was ich ja eigentlich nicht möchte.<br />
das selbe Problem besteht bei system();</p>
<p>Somit hätten ich also 3 Fragen:<br />
1.: wie biege ich die Handles um?<br />
2.: wie greife ich anschließend auf sie zu? (auf stdin schreiben und von stdout lesen)<br />
3.: wie verhindere ich die Erstellung eines neuen Konsolenfensters für Konsolenprogramme?</p>
<p>Bin für jede Hilfe dankbar</p>
<p>MfG DrakoXP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384513</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Sat, 13 Oct 2007 16:34:29 GMT</pubDate></item><item><title><![CDATA[Reply to stdin&#x2F;stdout on Sat, 13 Oct 2007 17:01:54 GMT]]></title><description><![CDATA[<p><a href="http://support.microsoft.com/kb/58667" rel="nofollow">http://support.microsoft.com/kb/58667</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384521</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 13 Oct 2007 17:01:54 GMT</pubDate></item><item><title><![CDATA[Reply to stdin&#x2F;stdout on Sat, 13 Oct 2007 17:10:33 GMT]]></title><description><![CDATA[<p>danke, hab ich aber schon im unteren Thread gelesen...</p>
<p>Das Problem ist hier:<br />
wie lenke ich die stdout / stdin eines anderen Programmes um?</p>
<p>denn das Beispiel lenkt ja nur die eigenen Ausgaben um.</p>
<p>übrigens: in Konsolenprogrammen kann man ja auch die WinAPI verwenden...<br />
( GetConsoleWindow(), SetConsoleCursorPosition(), blablabla )<br />
da gibt es ja SetStdHandle(...).<br />
Angenommen man würde per SetStdHandle die Handles auf bestimmte Dateien setzen<br />
und dann per ShellExecute ein Konsolenprogrammstarten...<br />
würden dann die umgelenkten Handles für das Konsolenprogramm übernommen?<br />
Oder kann man SetStdHandle/GetStdHandle in Windows-Programmen gar nicht einsetzen (zum Beispiel weil effektlos)?</p>
<p>außerdem fürchte ich, wird immer noch ein extra Konsolenfenster erzeugt, auch wenn ich die Handles umgelenkt habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384528</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Sat, 13 Oct 2007 17:10:33 GMT</pubDate></item><item><title><![CDATA[Reply to stdin&#x2F;stdout on Sat, 13 Oct 2007 17:35:42 GMT]]></title><description><![CDATA[<p>Upps... da hab ich Dir dummerweise den falschen Link gepostet... nimm mal diesen hier:<br />
<a href="http://support.microsoft.com/kb/190351/en-us" rel="nofollow">http://support.microsoft.com/kb/190351/en-us</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384535</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 13 Oct 2007 17:35:42 GMT</pubDate></item><item><title><![CDATA[Reply to stdin&#x2F;stdout on Sun, 14 Oct 2007 15:34:09 GMT]]></title><description><![CDATA[<p>danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>ist genau, was ich gesucht hab</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384971</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Sun, 14 Oct 2007 15:34:09 GMT</pubDate></item></channel></rss>