<?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[Screenshot von dem laufenden Programm]]></title><description><![CDATA[<p>Hallo!</p>
<p>Habe leider immer noch keine Lösung auf mein Problem bekommen, aber vielleicht kann mir hier jemand nen Tipp geben?</p>
<p>Gibt es eine Möglichkeit einen Screeshot von meinem in VC60-ATL/WTL programmierten Programm während des Programmablaufs zu machen. Aber so, dass ich auf jeden Fall ein Screenshot von dem gesamten Programm habe und nicht nur wie z.B. mit der ALT+drucktaste, wo man überlappende oder außerhalb des Bildschirms liegende Teile nicht sieht.</p>
<p>Bin für jeden Tipp dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203372/screenshot-von-dem-laufenden-programm</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 03:34:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203372.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Jan 2008 06:51:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 22 Jan 2008 06:51:26 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Habe leider immer noch keine Lösung auf mein Problem bekommen, aber vielleicht kann mir hier jemand nen Tipp geben?</p>
<p>Gibt es eine Möglichkeit einen Screeshot von meinem in VC60-ATL/WTL programmierten Programm während des Programmablaufs zu machen. Aber so, dass ich auf jeden Fall ein Screenshot von dem gesamten Programm habe und nicht nur wie z.B. mit der ALT+drucktaste, wo man überlappende oder außerhalb des Bildschirms liegende Teile nicht sieht.</p>
<p>Bin für jeden Tipp dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441031</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 22 Jan 2008 06:51:26 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 22 Jan 2008 09:28:29 GMT]]></title><description><![CDATA[<p>Ich mache es so,<br />
Alt + druck<br />
dann einfügen im ms_paint.<br />
mit ms_Paint kann man das Bild wie er will schneiden.<br />
dann einfügen in meinem Manuell</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441104</guid><dc:creator><![CDATA[dokdok2]]></dc:creator><pubDate>Tue, 22 Jan 2008 09:28:29 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 22 Jan 2008 10:22:33 GMT]]></title><description><![CDATA[<p>Danke, aber das Problem ist, dass ich das Bild per Knopfdruck in der Zwischenablage brauche (weil ich die Zwischenablage dann ausdrucken will). Und mit Alt+drucken wird ja auch nur das gespeichert, was man auf dem Bildschirm sieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441135</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 22 Jan 2008 10:22:33 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 22 Jan 2008 10:49:05 GMT]]></title><description><![CDATA[<p>Wenn du mit dem Maus auf dem Dialog des Tooles erst klickest dann alt+ druck,<br />
bekommst du den Screenshot sauper.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441166</guid><dc:creator><![CDATA[dokdok2]]></dc:creator><pubDate>Tue, 22 Jan 2008 10:49:05 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 22 Jan 2008 11:09:36 GMT]]></title><description><![CDATA[<p>Aber wenn das Fester nur zur Hälfte zu sehen ist, wird auch (bei mir zumindestens) nur der sichtbare Teil in den Screenshot gepackt, bzw. noch die Elemente die im sichtbaren Bereich darvorliegen. Ich will aber ganz unabhängig davon, was man von meinem Programm sieht einen Screenshot machen (per Knopfdruck im Programm und es dann auch automatisch ausdrucken).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441186</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 22 Jan 2008 11:09:36 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 22 Jan 2008 11:14:31 GMT]]></title><description><![CDATA[<p>plizer schrieb:</p>
<blockquote>
<p>Aber wenn das Fester nur zur Hälfte zu sehen ist, wird auch (bei mir zumindestens) nur der sichtbare Teil in den Screenshot gepackt, bzw. noch die Elemente die im sichtbaren Bereich darvorliegen. Ich will aber ganz unabhängig davon, was man von meinem Programm sieht einen Screenshot machen (per Knopfdruck im Programm und es dann auch automatisch ausdrucken).</p>
</blockquote>
<p>Das ist aber was anderes als ein Screenshot!<br />
<a href="http://www.codeproject.com/info/search.aspx?artkw=screen+clipboard&amp;sbo=kw" rel="nofollow">http://www.codeproject.com/info/search.aspx?artkw=screen+clipboard&amp;sbo=kw</a></p>
<p>Aber etwas bei Codeproject gesucht und es gibt Lösungen:<br />
<a href="http://www.codeproject.com/KB/printing/printformview.aspx" rel="nofollow">http://www.codeproject.com/KB/printing/printformview.aspx</a><br />
<a href="http://www.codeproject.com/KB/printing/prntscreen.aspx" rel="nofollow">http://www.codeproject.com/KB/printing/prntscreen.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441190</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 22 Jan 2008 11:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 22 Jan 2008 11:25:56 GMT]]></title><description><![CDATA[<p>Dafür gibt es WM_PRINT.<br />
Du brauchst nur ein passendes WM_PRINT an deinen Dialog/dein Fenster zu schicken, und den DC dann auszudrucken. Implementiert ist das alles schon (also die Behandlung von WM_PRINT), du musst es nurnoch verwenden.</p>
<p>WM_PRINT geht auch mit Fenstern/Dialogen die komplett ausserhalb des sichtbaren Desktop-Bereiches liegen, ganz oder halb verdeckt sind o.ä.</p>
<p>Noch besser: WM_PRINT ist *genau dafür* gemacht was du willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441202</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 22 Jan 2008 11:25:56 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 22 Jan 2008 11:27:56 GMT]]></title><description><![CDATA[<p>Hi Martin!</p>
<p>Ja, das ist tatsächlich was anderes. Ich habe aber versucht mit Hilfe des bekannten Begriffs mein Problem zu beschreiben. Vielen Dank für die Links, hatte schon bei codeproject geschaut aber bin nie auf gute keywords gekommen und die Ergebnisse waren mangelhaft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441206</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 22 Jan 2008 11:27:56 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 22 Jan 2008 12:32:47 GMT]]></title><description><![CDATA[<p>hustbaer: VIelen Dank! Da haben wir wohl fast gleichzeitig geschrieben. Werd mir Denien Hinweis genauer anschauen! <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/1441244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441244</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 22 Jan 2008 12:32:47 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Mon, 28 Jan 2008 09:56:02 GMT]]></title><description><![CDATA[<p>BIsher hab ichs mit WM_PRINT nicht geschafft. Ich weiss nicht was ich da übergeben muss. Ich habe für ATL/WTL nur so ne spartanische Hilfe und auch sonst find ich dazu leider nicht viel. Ich habe ein Handle meines Hauptprogramms und will davon den PRINT inkl. aller Steuerelemente haben. Das einzige was ich gefunden habe, ist dies:<br />
SendMessage(Form1-&gt;Handle, WM_PRINT, (LPARAM)Form1-&gt;Image1-&gt;Picture-&gt;Bitmap-&gt;Canvas-&gt;Handle, PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED);</p>
<p>Hab aber keine Ahnung wie ich das auf mein Problem übetragen soll.</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444884</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 28 Jan 2008 09:56:02 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Mon, 28 Jan 2008 10:41:52 GMT]]></title><description><![CDATA[<p>Ich verstehe Deine Frage nicht. Hast Du Dir die Doku von WM_PRINT mal angesehen?</p>
<p>Was brauchst Du? Einen DC! Gut, erzeuge Dir eien Memory DC wie das eben andere Snapshot Samples auch machen und Sende WM_PRINT mit den entsprechenden Flags...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444928</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 28 Jan 2008 10:41:52 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Mon, 28 Jan 2008 10:50:27 GMT]]></title><description><![CDATA[<p>In der MSDN find ich das:<br />
<a href="http://search.msdn.microsoft.com/search/Default.aspx?query=WM_PRINT&amp;brand=msdn&amp;locale=&amp;refinement=00&amp;lang=de-de" rel="nofollow">http://search.msdn.microsoft.com/search/Default.aspx?query=WM_PRINT&amp;brand=msdn&amp;locale=&amp;refinement=00&amp;lang=de-de</a></p>
<p>Damit kann ich allerdings nichts anfangen und bei Codeproject finde ich keinen Treffer zu WM_PRINT im Zusammenhang mit der ATL/WTL!?</p>
<p>Ich würde einfach mal gerne ne Doku haben, wo ich sehe was ich übergeben kann? Ich weiss auch nicht wozu WM_PRINT überhaupt gehört? Ist das von der WinAPI direkt oder MFC? Wo kann man sowas erfahren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444941</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 28 Jan 2008 10:50:27 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Mon, 28 Jan 2008 15:41:33 GMT]]></title><description><![CDATA[<p>Verstehe ich nicht, warum ich die SDuchmaschine spielen muss?<br />
<a href="http://msdn2.microsoft.com/en-us/library/ms534856.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms534856.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445164</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 28 Jan 2008 15:41:33 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 29 Jan 2008 09:10:29 GMT]]></title><description><![CDATA[<p>Danke, mit den Infos habe ich bisher das fertiggestellt. Es gibt auch nen Druckformular und der Drucker druckt auch, allerdings ist die Seite immer leer. So sieht der Quelltext aus:</p>
<pre><code class="language-cpp">HRESULT hr;
DOCINFO di;
CPrintDialog tmp_CPD(FALSE, PD_PAGENUMS | PD_USEDEVMODECOPIES);
if (tmp_CPD.DoModal() != IDOK) {	  
  return -1;
}

LPDEVMODE lpPrinterDevMode = tmp_CPD.GetDevMode();
GlobalUnlock(lpPrinterDevMode);
lpPrinterDevMode-&gt;dmOrientation=DMORIENT_LANDSCAPE;
lpPrinterDevMode-&gt;dmPaperSize=DMPAPER_A4;
GlobalLock(lpPrinterDevMode);

CDC printerDC = tmp_CPD.GetPrinterDC();
wDiag.Print(printerDC, NULL);

di.cbSize = sizeof(DOCINFO) ;
bstr_t printName = &quot;Test&quot;;
di.lpszDocName = printName;
di.lpszOutput = NULL ;

hr = printerDC.StartDoc(&amp;di) ; 
hr = printerDC.StartPage();

hr = printerDC.EndPage();
hr = printerDC.EndDoc();

return 0;
</code></pre>
<p>Nur warum ist der Druck noch leer?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445491</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 29 Jan 2008 09:10:29 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 29 Jan 2008 12:03:18 GMT]]></title><description><![CDATA[<p>Ich sehe keinerlei Code der auch nur irgendwas auf den printerDC ausgibt...</p>
<p>Umgekehrt also die Frage: Warum erwartest Du, dass hier irgendetwas auf dem Papier sichtbar werden soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445577</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 29 Jan 2008 12:03:18 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 29 Jan 2008 12:58:14 GMT]]></title><description><![CDATA[<p>Die Methode print() nutzt so weit ich weiss WM_PRINT. Ich habs jetzt auch geschafft dass was ausgedruckt wird. Nun hab ich nurnoch das Problem, dass das Ganze irgendwie wie ein &quot;normaler Screenshot&quot; arbeitet, d.h. wenn vor meinem Programm ein anderes Fenster oder die Taskleiste liegt wird diese mit ausgegeben. Und wenn das Programm außerhalb des Bildschirms liegt, wird diese Fläche schwarz dargestellt!</p>
<p>Hast Du noch nen Tipp?</p>
<pre><code class="language-cpp">HRESULT hr;
DOCINFO di;
DWORD dwError;

CPrintDialog tmp_CPD(FALSE, PD_PAGENUMS | PD_USEDEVMODECOPIES);

if (tmp_CPD.DoModal() != IDOK) {	  
return -1;
}

//to-do: landscape
LPDEVMODE lpPrinterDevMode = tmp_CPD.GetDevMode();
GlobalUnlock(lpPrinterDevMode);
lpPrinterDevMode-&gt;dmOrientation=DMORIENT_LANDSCAPE;
lpPrinterDevMode-&gt;dmPaperSize=DMPAPER_A4;
GlobalLock(lpPrinterDevMode);

CDC printerDC = tmp_CPD.GetPrinterDC();

dwError = GetLastError();

di.cbSize = sizeof(DOCINFO);
bstr_t printName = &quot;Test&quot;;
lpszDocName = printName;
di.lpszOutput = NULL;

hr = printerDC.StartDoc(&amp;di) ; 
hr = printerDC.StartPage();

HDC hDC;

hDC = GetWindowDC(); //Now get it's DC handle 
HDC hMemDC = CreateCompatibleDC(hDC);
RECT r;

RedrawWindow(NULL,NULL,RDW_UPDATENOW);	// printdialogschatten entfernen

GetWindowRect(&amp;r); //need this for Form
SIZE size;
size.cx = r.right-r.left;
size.cy = r.bottom-r.top;
BitBlt(printerDC, 0, 0, size.cx, size.cy, hDC, 0, 0, SRCCOPY);
DeleteDC(hMemDC);
ReleaseDC(hDC);

hr = printerDC.EndPage();
hr = printerDC.EndDoc();

return 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1445626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445626</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 29 Jan 2008 12:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 29 Jan 2008 13:46:37 GMT]]></title><description><![CDATA[<p>Und warum setzt Du wDiag.Print(printerDC, NULL); nicht zwischen StartPage/EndPage!</p>
<p>Lies doch wenigstens etwas die Doku, bevor Du irgendwelche Codesnippets zusammenbaust!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445654</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 29 Jan 2008 13:46:37 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot von dem laufenden Programm on Tue, 29 Jan 2008 13:59:13 GMT]]></title><description><![CDATA[<p>Hab ich auch versucht, ändert leider nichts. Ich lese schon die Doku dazu, nur versteh ich da nicht all zu viel :-(...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445665</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 29 Jan 2008 13:59:13 GMT</pubDate></item></channel></rss>