<?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 via Winsock verschicken]]></title><description><![CDATA[<p>Moin,<br />
ich hab ein kleines Prog geschrieben, welches einen Screenshot macht.</p>
<pre><code>'----------------------------------------------------------------------------   
   FUNCTION ScreenShot( Src_hWnd AS HWND , Dsn_hWnd AS HWND ) AS INTEGER
   '----------------------------------------------------------------------------   

      DIM Src_hDC  AS HDC
          Src_hDC = GetDC( Src_hWnd )
      DIM Dsn_hDC AS HDC    
      DIM Rect    AS RECT
      DIM bmp     AS HBitmap
      DIM bi      AS BITMAPINFO

      IF Src_hWnd = 0 THEN 
         Rect.left   = 0
         Rect.top    = 0
         Rect.right  = GetSystemMetrics( SM_CXSCREEN )
         Rect.bottom = GetSystemMetrics( SM_CYSCREEN )
      END IF

      GetWindowRect( Src_hWnd , @Rect )
      Dsn_hDC = GetDC( Dsn_hWnd ) 

      DIM bmih AS BITMAPINFOHEADER  

      bmih.biSize=LEN( BITMAPINFOHEADER ) 
      bmih.biHeight= 480
      bmih.biWidth= 640
      bmih.biPlanes=1 
      bmih.biBitCount=24 
      bmih.biCompression=BI_RGB 
      bmih.biSizeImage = ( bmih.biWidth * bmih.biBitCount ) * bmih.biHeight + 31
      bmih.biXPelsPerMeter = 0 
      bmih.biYPelsPerMeter = 0 
      bmih.biClrImportant = 0 
      bi.bmiHeader = bmih

      bmp = CreateDIBSection( Src_hDC , @bi , DIB_RGB_COLORS , NULL , NULL , NULL )

      SelectObject( Dsn_hDC , bmp ) 
      StretchBlt( Dsn_hDC , 0 , 0 , 640 , 480 , Src_hDC , 0 , 0 , Rect.right , Rect.bottom , SRCCOPY )

   END FUNCTION
</code></pre>
<p>Diesen möchte ich jetzt gerne über mein Netzwerk verschiken. Dazu benutze ich die &quot;Winsock&quot; lib. Mein Problem, da ich ja nur Zeichenketten verschicken kann,<br />
muss der Screenshot iregndwie in eine Zeichenkette. Nur wie mach ich das?</p>
<p>MFG Thorben</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182220/screenshot-via-winsock-verschicken</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 14:49:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182220.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 May 2007 19:26:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Tue, 22 May 2007 19:26:37 GMT]]></title><description><![CDATA[<p>Moin,<br />
ich hab ein kleines Prog geschrieben, welches einen Screenshot macht.</p>
<pre><code>'----------------------------------------------------------------------------   
   FUNCTION ScreenShot( Src_hWnd AS HWND , Dsn_hWnd AS HWND ) AS INTEGER
   '----------------------------------------------------------------------------   

      DIM Src_hDC  AS HDC
          Src_hDC = GetDC( Src_hWnd )
      DIM Dsn_hDC AS HDC    
      DIM Rect    AS RECT
      DIM bmp     AS HBitmap
      DIM bi      AS BITMAPINFO

      IF Src_hWnd = 0 THEN 
         Rect.left   = 0
         Rect.top    = 0
         Rect.right  = GetSystemMetrics( SM_CXSCREEN )
         Rect.bottom = GetSystemMetrics( SM_CYSCREEN )
      END IF

      GetWindowRect( Src_hWnd , @Rect )
      Dsn_hDC = GetDC( Dsn_hWnd ) 

      DIM bmih AS BITMAPINFOHEADER  

      bmih.biSize=LEN( BITMAPINFOHEADER ) 
      bmih.biHeight= 480
      bmih.biWidth= 640
      bmih.biPlanes=1 
      bmih.biBitCount=24 
      bmih.biCompression=BI_RGB 
      bmih.biSizeImage = ( bmih.biWidth * bmih.biBitCount ) * bmih.biHeight + 31
      bmih.biXPelsPerMeter = 0 
      bmih.biYPelsPerMeter = 0 
      bmih.biClrImportant = 0 
      bi.bmiHeader = bmih

      bmp = CreateDIBSection( Src_hDC , @bi , DIB_RGB_COLORS , NULL , NULL , NULL )

      SelectObject( Dsn_hDC , bmp ) 
      StretchBlt( Dsn_hDC , 0 , 0 , 640 , 480 , Src_hDC , 0 , 0 , Rect.right , Rect.bottom , SRCCOPY )

   END FUNCTION
</code></pre>
<p>Diesen möchte ich jetzt gerne über mein Netzwerk verschiken. Dazu benutze ich die &quot;Winsock&quot; lib. Mein Problem, da ich ja nur Zeichenketten verschicken kann,<br />
muss der Screenshot iregndwie in eine Zeichenkette. Nur wie mach ich das?</p>
<p>MFG Thorben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290131</guid><dc:creator><![CDATA[Thorben]]></dc:creator><pubDate>Tue, 22 May 2007 19:26:37 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Tue, 22 May 2007 19:38:36 GMT]]></title><description><![CDATA[<p>Also ich würde den Screenshot in einer temporären Datei speichern, diese Datei dann schrittweise binär auslesen und nach jedem Schritt die Nullen und Einsen als Zeichenkette verschicken. Der Empfänger muss die Daten dann nur wieder in eine Datei speichern und der Sender muss seine temp. Datei löschen.</p>
<p>mfg killsmaker</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290138</guid><dc:creator><![CDATA[KILLSMAKER]]></dc:creator><pubDate>Tue, 22 May 2007 19:38:36 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Tue, 22 May 2007 19:47:45 GMT]]></title><description><![CDATA[<p>Hi,<br />
an dieser Stelle würde mich interessieren wie man dieses binäre Auslesen macht.<br />
Kannst du mal ein Beispiel dazu bringen?</p>
<p>Gilb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290148</guid><dc:creator><![CDATA[Der Gilb]]></dc:creator><pubDate>Tue, 22 May 2007 19:47:45 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Tue, 22 May 2007 19:49:17 GMT]]></title><description><![CDATA[<p>send() verschickt Bytes. Warum MS sich für den Buffer gerade nen char*-Pointer ausgedacht hat weiss der Geier <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=";D"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290149</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Tue, 22 May 2007 19:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Tue, 22 May 2007 20:08:38 GMT]]></title><description><![CDATA[<p>binär auslesen:</p>
<p>char cZeichenkette[MAX_PATH];<br />
file=fopen(&quot;C:...&quot;,&quot;rb&quot;); Im Binärlesemodus öffnen<br />
fread(cZeichenkette,sizeof(char),MAX_PATH,file);<br />
...</p>
<p>mfg killsmaker</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290155</guid><dc:creator><![CDATA[KILLSMAKER]]></dc:creator><pubDate>Tue, 22 May 2007 20:08:38 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Tue, 22 May 2007 21:36:28 GMT]]></title><description><![CDATA[<p>geeky schrieb:</p>
<blockquote>
<p>send() verschickt Bytes. Warum MS sich für den Buffer gerade nen char*-Pointer ausgedacht hat weiss der Geier <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=";D"
      alt="😉"
    /></p>
</blockquote>
<p>Ähm die bauen doch auf den Berkeley Sockets auf, damit hat sich das nit MS ausgedacht^^ - hm <em>char</em>, glaube ich deswegen, da eben ein <em>char</em> ein Byte verbraucht.<br />
Ich mein, gut man hätte auch <em>void</em>* nehmen können, aber ist eigentlich auch Rille (<em>DWORD</em>, also <em>unsigned long</em>, geht da ja nicht so gut. Wär ja doof, wenn man mal nur 3 Bytes verschicken will <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="😉"
    /> - klingt für mich zum mindestens logisch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290213</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 22 May 2007 21:36:28 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Tue, 22 May 2007 21:42:31 GMT]]></title><description><![CDATA[<p>Hi, ich will auch sowas ähnliches machen, aber ohne erst eine Datei anzulegen und diese wider auszulesen, aber ich komm einfach auf keinen grünen Zweig <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="😞"
    /><br />
Also meine Frage, wie müsste ich das vom Prinzip her machen wenn ich das mit winsock verschicken will? <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/1290216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290216</guid><dc:creator><![CDATA[gosha16]]></dc:creator><pubDate>Tue, 22 May 2007 21:42:31 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Tue, 22 May 2007 21:48:39 GMT]]></title><description><![CDATA[<p>gosha16 schrieb:</p>
<blockquote>
<p>Also meine Frage, wie müsste ich das vom Prinzip her machen wenn ich das mit winsock verschicken will? <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>
</blockquote>
<p>- Screenshot erstellen (-&gt; GDI)<br />
- Speicher anfordern, den ganzen Sermon im RAM ablegen (da Du ja keine Datei anlegen); vergiss nicht den Dateiheader der Bitmap, also <em>BITMAPINFOHEADER</em>*.<br />
- Socket erstellen und Verbindung aufbauen, ggf. einen Client schreiben, das Senden und Empfangen implementieren<br />
- Datenblock schicken<br />
- Warten bis alles angekommen/verschickt ist<br />
- Bitmap anzeigen, bzw. Bitmap-Datei erstellen*; je nach Belieben <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>
<p>So sollte in etwa das Prinzip sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> .</p>
<p>EDIT: hm, oder meintest Du was anderes ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290220</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 22 May 2007 21:48:39 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Wed, 23 May 2007 01:34:39 GMT]]></title><description><![CDATA[<p>Hm. Was issn das für ne Sprache? Hm. Egal.<br />
Die Bitmap kannst du mit GetObject und GetBitmapBits &quot;serialisieren&quot; (also &quot;in einen Byte Block verwandeln&quot; - den du dann eben mit send() verschicken kannst). Wenn du genau das Format einer &quot;.bmp&quot; Datei verwenden willst musst du dir dieses eben ansehen und dich daran halten (das hier zu erklären wäre mir etwas zu langwierig). Ansonsten packe einfach die Daten die du am anderen Ende brauchst hintereinander in einen Puffer, und übergib den dann solange an send() bis alles raus ist.<br />
Und: schicke vorher die Länge der folgenden Daten mit, damit du auf der Empfängerseite dann auch weisst wie gross die sind, also wie lange du die Schleife mit recv() drinnen laufen lassen musst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290282</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 23 May 2007 01:34:39 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Wed, 23 May 2007 05:05:34 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>- Speicher anfordern, den ganzen Sermon im RAM ablegen (da Du ja keine Datei anlegen); vergiss nicht den Dateiheader der Bitmap, also <em>BITMAPINFOHEADER</em>*.</p>
</blockquote>
<p>Diese Stelle bereitet mir Schwierigkeiten, aber trotzdem mal ein Gedankenanstos. Ich glaube ich weis jetzt wie ich es machen muss. Danke <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/1290289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290289</guid><dc:creator><![CDATA[gosha16]]></dc:creator><pubDate>Wed, 23 May 2007 05:05:34 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Wed, 23 May 2007 10:24:40 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Hm. Was issn das für ne Sprache?</p>
</blockquote>
<p>Glaube Visual Basic.</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Wenn du genau das Format einer &quot;.bmp&quot; Datei verwenden willst musst du dir dieses eben ansehen und dich daran halten</p>
</blockquote>
<p>Jupp, glaube da steht auch etwas inner FAQ zu drin; in der MSDN sowieso <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/1290500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290500</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 23 May 2007 10:24:40 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Wed, 23 May 2007 12:23:29 GMT]]></title><description><![CDATA[<p>Thorben schrieb in einem anderen Thread:</p>
<blockquote>
<p>Der Code ist in FreeBasic geschrieben sollte aber einfach zu erkennen sein was was ist.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1290634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290634</guid><dc:creator><![CDATA[ot]]></dc:creator><pubDate>Wed, 23 May 2007 12:23:29 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Wed, 23 May 2007 12:49:55 GMT]]></title><description><![CDATA[<p>Nagut, das &quot;Basic&quot; war wenigstens richtig :p .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290682</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 23 May 2007 12:49:55 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Wed, 23 May 2007 13:14:16 GMT]]></title><description><![CDATA[<blockquote>
<p>- Speicher anfordern, den ganzen Sermon im RAM ablegen (da Du ja keine Datei anlegen); vergiss nicht den Dateiheader der Bitmap, also BITMAPINFOHEADER*.</p>
</blockquote>
<p>Ich will heut auch mal etwas faul sein... <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="🤡"
    /><br />
Wie mach ich das am günstigsten?(Funktionsnamen wären mir ganz lieb <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290711</guid><dc:creator><![CDATA[gosha16]]></dc:creator><pubDate>Wed, 23 May 2007 13:14:16 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot via Winsock verschicken on Wed, 23 May 2007 17:09:09 GMT]]></title><description><![CDATA[<p>Nochmal: GetObject und GetBitmapBits<br />
Mit deinem Basic Dialekt den du da verwendest kann ich dir nicht helfen.<br />
Sollte der nicht mit byte Arrays umgehen können kannst du über HeapAlloc, GetProcessHeap, CopyMemory etc. arbeiten.<br />
Ist alles in der MSDN dokumentiert, also mach dich mal schlau.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290925</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 23 May 2007 17:09:09 GMT</pubDate></item></channel></rss>