<?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[Lösungsvorschläge | Client-Server | Desktop übertragen]]></title><description><![CDATA[<p>huhu,</p>
<p>ich möchte eine Socket-Anwendung schreiben wo der Server-Desktop<br />
zum Client gesendet und dort ausgegeben wird.</p>
<p>meine fragen:<br />
- wie kann ich den Server-Desktop inkrementell auslesen? jedes pixel einzelnd und auf veränderungen vergleichen?<br />
- wie kann ich es über &quot;send(...);&quot; am bestem zum Client schicken?</p>
<p>wäre euch für lösungsvorschläge sehr dankbar <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/topic/165366/lösungsvorschläge-client-server-desktop-übertragen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 14:10:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165366.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Nov 2006 10:03:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 10:03:18 GMT]]></title><description><![CDATA[<p>huhu,</p>
<p>ich möchte eine Socket-Anwendung schreiben wo der Server-Desktop<br />
zum Client gesendet und dort ausgegeben wird.</p>
<p>meine fragen:<br />
- wie kann ich den Server-Desktop inkrementell auslesen? jedes pixel einzelnd und auf veränderungen vergleichen?<br />
- wie kann ich es über &quot;send(...);&quot; am bestem zum Client schicken?</p>
<p>wäre euch für lösungsvorschläge sehr dankbar <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/1177000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177000</guid><dc:creator><![CDATA[babelduo]]></dc:creator><pubDate>Sun, 19 Nov 2006 10:03:18 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 14:06:21 GMT]]></title><description><![CDATA[<p>babelduo schrieb:</p>
<blockquote>
<p>- wie kann ich den Server-Desktop inkrementell auslesen? jedes pixel einzelnd und auf veränderungen vergleichen?</p>
</blockquote>
<p>Deine Leitung wird Dir zwar explodieren oder dein Prozessor Dich erschlagen, aber:<br />
GetDesktopWindow, bzw GetDC(NULL) und GetPixel...Farbwerte sind einfache Integer-Werte; wie man die vergleicht sollte klar sein :p .</p>
<p>babelduo schrieb:</p>
<blockquote>
<p>- wie kann ich es über &quot;send(...);&quot; am bestem zum Client schicken?</p>
</blockquote>
<p>Entweder Du schickst die gesamte Bitmap(-Datei), was aber eigentlich relativ resourcen-fressend ist, auf Dauer. Eine andere (sinnvollere) Möglichkeit wäre es, nur den differenten Teil zu verschicken <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/1177158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177158</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 19 Nov 2006 14:06:21 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 14:40:49 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Eine andere (sinnvollere) Möglichkeit wäre es, nur den differenten Teil zu verschicken <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>
</blockquote>
<p>Ich glaube darum will er vergleichen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1177199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177199</guid><dc:creator><![CDATA[:cool:]]></dc:creator><pubDate>Sun, 19 Nov 2006 14:40:49 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 16:02:17 GMT]]></title><description><![CDATA[<p>ja genau ich möchte ja nur die veränderten sachen schicken!</p>
<p>ich gucke also beim Server in einem bestimmten intervall ob sich etwas verändert<br />
hat und schicke die veränderungen... aber wie am besten?</p>
<p>mein lösungsvorschlag wäre nun:</p>
<pre><code>10;100;farbwert
</code></pre>
<p>den string kann man ja beim Client leicht wieder in die einzelteile<br />
per strtok teilen!</p>
<p>das heißt das sich das pixel verändert hat<br />
(10te reihe von oben, 100pixel von links)</p>
<p>natürlich würde ich mehrere veränderungen hintereinander schicken.</p>
<pre><code>10;100;farbwert;526;10;farbwert;701;846;farbwert;900;100;farbwert;
</code></pre>
<p>(die veränderungen der pixel sind zwar eher nicht realitätsnah da sie weit auseinander liegen aber ihr wisst was ich meine ;))</p>
<p>hättet ihr noch vorschläge zur optimierung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177255</guid><dc:creator><![CDATA[babelduo (net eingeloggt)]]></dc:creator><pubDate>Sun, 19 Nov 2006 16:02:17 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 16:41:44 GMT]]></title><description><![CDATA[<blockquote>
<p>hättet ihr noch vorschläge zur optimierung?</p>
</blockquote>
<p>Jo^^.</p>
<pre><code class="language-cpp">struct SPixelUpdate
{
   short sX; // X-Koordinate
   short sY; // X-Koordinate
   unsigned int uiNewClr; // Neuer Farbwert
};
</code></pre>
<p>Vorteile: Geringerer Speicherverbrauch und einfachere Handhabung <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/1177286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177286</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 19 Nov 2006 16:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 17:21:49 GMT]]></title><description><![CDATA[<p>hey danke schonmal <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>ich habe schon mit strukturen gearbeitet - allerdings habe ich noch<br />
keine struktur über &quot;send(...);&quot; gesendet und mit &quot;recv(...);&quot; wieder<br />
ausgelesen!</p>
<p>wie kann ich das denn handeln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177315</guid><dc:creator><![CDATA[babelduo (net eingeloggt)]]></dc:creator><pubDate>Sun, 19 Nov 2006 17:21:49 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 17:40:11 GMT]]></title><description><![CDATA[<p>babelduo (net eingeloggt) schrieb:</p>
<blockquote>
<p>wie kann ich das denn handeln?</p>
</blockquote>
<p>In etwa so:</p>
<pre><code class="language-cpp">SPixelUpdate pixData;
pixData.sX       = 45;
pixData.sY       = 569;
pixData.uiNewClr = RGB(0,0,0);
int iRet = send(skDest, reinterpret_cast&lt;char*&gt;(&amp;pixData), sizeof(pixData), WSA...);
</code></pre>
<p>PS: Du musst mal darauf achten, das es keinen Overflow wegen den Koordinaten in Bezug auf den Datentyp short gibt - könnte doch etwas zu klein sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177328</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 19 Nov 2006 17:40:11 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 17:42:23 GMT]]></title><description><![CDATA[<p>Mir ist grad noch eingefallen:<br />
Du könntest vllt auch ein Pixelfeld zur Aktualisierung 'markieren'.<br />
Das ließe sich beispielsweise mit nem std::vector (STL, C++) und einem<br />
Anfangskoordinatenpunkt und einem Endkoordinatenpunkt <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 />
Damit kann man noch den aufkommenden Transfer-Speicher reduzieren.</p>
<p>EDIT: Vertipper <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/1177329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177329</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 19 Nov 2006 17:42:23 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 18:48:08 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>...und GetPixel...</p>
</blockquote>
<p>bist du verrückt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> das killt die stärkste maschine.</p>
<p>besser (usermode): mit 'CreateDibSection' eine solche anlegen und dann mit<br />
BitBlt den ganzen desktop da rein. auf die daten in der disbsection kann man dann ganz normal über pointer zugreifen, alles komprimieren und abschicken.</p>
<p>noch besser: einen mirror driver basteln: <a href="http://msdn2.microsoft.com/en-us/library/ms797878.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms797878.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177365</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sun, 19 Nov 2006 18:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 19:51:01 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>...und GetPixel...</p>
</blockquote>
<p>bist du verrückt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> das killt die stärkste maschine.</p>
</blockquote>
<p><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="😃"
    /> <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>Muahaha ich sag ja: Sprengt jede Maschine... <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="😃"
    /> <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>Aber hast Recht, mit ner DIB-Section ist das besser <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/1177389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177389</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 19 Nov 2006 19:51:01 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 19:52:17 GMT]]></title><description><![CDATA[<p>hmm ja, jedes pixel auszulesen verbraucht wirklich ein par viele<br />
ressourcen <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>ich habe hier nun mal ein beispiel wo ein Screenshot gemacht wird und<br />
&quot;CreateDIBSection()&quot; angewendet wird:</p>
<pre><code>HDC hdc, hdc2;
hdc=GetDC(NULL);
hdc2=CreateCompatibleDC(hdc);
HBITMAP aBmp; 
BITMAPINFO bi; 
HGDIOBJ OldObj; 
void *dibvalues; 
HANDLE fileHandle; 
BITMAPFILEHEADER bmfh; 
BITMAPINFOHEADER bmih; 
DWORD bytes_write; 
DWORD bytes_written; 
ZeroMemory(&amp;bmih,sizeof(BITMAPINFOHEADER));

int width_s=800;
int height_s=600;

int width=width_s;
int height=height_s;

bmih.biSize=sizeof(BITMAPINFOHEADER); 
bmih.biHeight=height; 
bmih.biWidth=width; 
bmih.biPlanes=1; 
bmih.biBitCount=16; 
bmih.biCompression=BI_RGB; 
bmih.biSizeImage = ((((bmih.biWidth * bmih.biBitCount) + 31) &amp; ~31) &gt;&gt; 3) * bmih.biHeight; 
bmih.biXPelsPerMeter = 0; 
bmih.biYPelsPerMeter = 0; 
bmih.biClrImportant = 0; 
bi.bmiHeader=bmih; 

aBmp=[b]CreateDIBSection[/b](hdc,&amp;bi,DIB_RGB_COLORS,(void**)&amp;dibvalues,NULL,NULL); 

if (aBmp==NULL) 
{ 
return 0;
} 

OldObj=SelectObject(hdc2,aBmp);

//BitBlt(hdc2,0,0,width,height,hdc,0,0,SRCCOPY);
StretchBlt(hdc2,0,0,width_s,height_s,hdc,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),SRCCOPY);
</code></pre>
<p>ich benutze StretchBlt anstatt BitBlt da ich so die Möglichkeit habe das Bild auf (hier) 800x600 zu schrumpfen und somit schon vor dem senden zu verkleinern.</p>
<p>aber wie gehts nun weiter? nun &quot;meine&quot; methode anwenden und bei hdc2 jedes<br />
pixel auslesen und per strukt versenden?</p>
<p>meintet ihr das so?</p>
<p>danke schonmal <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/1177390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177390</guid><dc:creator><![CDATA[babelduo]]></dc:creator><pubDate>Sun, 19 Nov 2006 19:52:17 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 20:12:57 GMT]]></title><description><![CDATA[<p>babelduo schrieb:</p>
<blockquote>
<p>aber wie gehts nun weiter? nun &quot;meine&quot; methode anwenden und bei hdc2 jedes<br />
pixel auslesen und per strukt versenden?</p>
</blockquote>
<p>na fast. der trick bei den dibsections ist ja, das man für weitere aktionen das 'hdc' graffel nicht mehr braucht. dein pointer 'dibvalues' zeigt dann auf die pixeldaten (bei 'nem 16bit/pixel rgb format, jeweils 5 bits, eins ist unbenutzt). die daten kannste direkt durch 'nen kompressor jagen und dann senden (ich glaub' das bild steht auf dem kopf, aber das sollte nicht das problem sein).</p>
<p>btw: jedesmal das ganze bild zu senden ist aber auch nicht der weisheit letzter schuss <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/1177396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177396</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sun, 19 Nov 2006 20:12:57 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 20:28:47 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3162">@net</a><br />
nein ich wollte ja eig. auch immer nur die inkrementellen sachen verschicken -<br />
halt was sich geändert hat.<br />
mit GetPixel hätte ich halt jedes pixel ausgelesen und geguckt ob sich etwas<br />
verändert hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177406</guid><dc:creator><![CDATA[babelduo]]></dc:creator><pubDate>Sun, 19 Nov 2006 20:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 20:54:35 GMT]]></title><description><![CDATA[<p>GetPixel kannst Du vergessen. Da wird Dein vergleich vermutlich erst morgen Fertig...<br />
Hol Dir das ganze Bitmap und greife dann direkt auf das kopierte Bitmap zu. Nur so ist es performant (Du musst dann halt die Farbtiefe beachten, damit Du den koorekten Offset berechnest).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177425</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 19 Nov 2006 20:54:35 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 20:58:40 GMT]]></title><description><![CDATA[<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>GetPixel kannst Du vergessen. Da wird Dein vergleich vermutlich erst morgen Fertig...</p>
</blockquote>
<p>das wissen wir schon seit der ersten seite <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/1177429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177429</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sun, 19 Nov 2006 20:58:40 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 20:59:44 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>GetPixel kannst Du vergessen. Da wird Dein vergleich vermutlich erst morgen Fertig...</p>
</blockquote>
<p>das wissen wir schon seit der ersten seite <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>
</blockquote>
<p>Aber es scheint so als ob es beim OP immer noch nicht angekommen ist... oder schwelgt er in alten Zeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177430</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 19 Nov 2006 20:59:44 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sun, 19 Nov 2006 21:14:09 GMT]]></title><description><![CDATA[<p>ach, noch was zur geschwindigkeit: der speed des 'BitBlt' in eine dibsection ist stark von dem passenenden BITMAPINFOHEADER und der grafikhardware abhängig. bei mir waren immer 16bits/pixel das schnellste. bei inkompatiblen formaten muss windows alles umrechnen. das kostet nochmals viel zeit...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177438</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sun, 19 Nov 2006 21:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Mon, 20 Nov 2006 06:52:42 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>bei inkompatiblen formaten muss windows alles umrechnen. das kostet nochmals viel zeit...</p>
</blockquote>
<p>Ja, aus diesem Grunde immer das *gleiche* Format verwenden, dann entspricht die Geschwindigkeit des BitBlt ungefähr einem memcpy <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/1177544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177544</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 20 Nov 2006 06:52:42 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Mon, 20 Nov 2006 06:59:10 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5675">@Jochen</a> Kalmbach<br />
nene die alten zeiten hab ich abgelegt... hoffe ich^^</p>
<p>also ich arbeitete mich gerade auch erst ein wenig ein - hab mit<br />
CreateDIBSection() noch net gearbeitet.<br />
aber ich kann nun so auf die pixel zugreifen:</p>
<p>for(int i = 0; i &lt; height_s * width_s * 3; i += 3)<br />
{<br />
// R G B<br />
printf(&quot;%i_%i_%i &quot;, dibvalues[i+2], dibvalues[i+1], dibvalues[i]);<br />
}</p>
<p>meint ihr das so? das ich hier die farben der pixel vergleiche und nur<br />
die veränderten sende?</p>
<p>danke euch aber schonmal <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/1177548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177548</guid><dc:creator><![CDATA[babelduo]]></dc:creator><pubDate>Mon, 20 Nov 2006 06:59:10 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Mon, 20 Nov 2006 08:47:04 GMT]]></title><description><![CDATA[<p>babelduo schrieb:</p>
<blockquote>
<p>for(int i = 0; i &lt; height_s * width_s * 3; i += 3)<br />
{<br />
// R G B<br />
printf(&quot;%i_%i_%i &quot;, dibvalues[i+2], dibvalues[i+1], dibvalues[i]);<br />
}</p>
</blockquote>
<p>ja, so ähnlich. du musst 'dibvalues', der ja ein void* ist, für so'ne schleife in den richtigen typ umwandeln. bei 24 und 32 bits/pixel muss es ein DWORD sein und bei 16bits/pixel ein WORD.</p>
<p>babelduo schrieb:</p>
<blockquote>
<p>meint ihr das so? das ich hier die farben der pixel vergleiche und nur<br />
die veränderten sende?</p>
</blockquote>
<p>naja, das vergleichen und senden ist ein anderes thema. man kann z.b. den screen in kleine, rechteckige bereiche 'kacheln'. wenn man eine änderung festgestellt hat, schickt man die entsprechende 'kachel'. kacheln mit gleichem inhalt (z.b. einfarbiger desktophintergrund) braucht man nur einmal zu schicken und danach nur deren 'kachelnummer' und position.<br />
vielleicht schauste dir mal an, wie vnc sowas macht:<br />
<a href="http://grox.net/doc/apps/vnc/howitworks.html" rel="nofollow">http://grox.net/doc/apps/vnc/howitworks.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177602</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Mon, 20 Nov 2006 08:47:04 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Mon, 20 Nov 2006 15:57:28 GMT]]></title><description><![CDATA[<p>ja ok!<br />
also das mit dem nachschauen und nur dem verändertem senden kann ich ja<br />
dann machen da schaue ich mal...</p>
<p>aber wie genau ist das mit dem umwandeln gemeint?</p>
<pre><code>WORD* test;
test=(WORD*)dibvalues;

for(int i = 0; i &lt; height_s * width_s * 3; i += 3)
{

	printf(&quot;%i_%i_%i &quot;, test[i+2], test[i+1], test[i]);
}
</code></pre>
<p>?</p>
<p>da kommen dann farbwerte raus die so ausschauen:</p>
<pre><code>31875_39312_65535
0_812_0
87_46_116
454_47482_43851
</code></pre>
<p>naja und wenn ich den ganzen desktop (bei mir 1280x1024) nehme<br />
sürtzt mein programm ab wegen eines laufzeitfehlers!</p>
<p>wenn ich mittels StretchBlt(...) auf 100x100 &quot;schrumpfe&quot;<br />
läuft er wenigstens ohne laufzeitfehler durch <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>ich nehme an das liegt an der pointer-konvertierung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177910</guid><dc:creator><![CDATA[babelduo (net eingeloggt)]]></dc:creator><pubDate>Mon, 20 Nov 2006 15:57:28 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Mon, 20 Nov 2006 17:02:29 GMT]]></title><description><![CDATA[<p>babelduo (net eingeloggt) schrieb:</p>
<blockquote>
<pre><code>WORD* test;
test=(WORD*)dibvalues;

for(int i = 0; i &lt; height_s * width_s * 3; i += 3)
{

	printf(&quot;%i_%i_%i &quot;, test[i+2], test[i+1], test[i]);
}
</code></pre>
</blockquote>
<p>nee, das wär' ja für 48 bits/px <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 />
für 16 bits sieht das ungefähr so aus:</p>
<pre><code>for (i=0; i&lt;height*width; i++)
{
   WORD *w = (WORD*)dibvalues + i;
   red = *w &amp; 0x1f;
   green = (*w&gt;&gt;5) &amp; 0x1f;
   blue = (*w&gt;&gt;10) &amp; 0x1f;
}
</code></pre>
<p>kann sein dass rot und blau vertauscht sind (ist ja nur ein beispiel)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177935</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Mon, 20 Nov 2006 17:02:29 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Tue, 21 Nov 2006 11:33:57 GMT]]></title><description><![CDATA[<p>achso <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="🙂"
    /><br />
ja danke... habs nun so ausprobiert:</p>
<pre><code>for (int i=0; i&lt;height*width; i++)
{
	WORD *w = (WORD*)dibvalues + i;

	/*red = *w &amp; 0x1f;
	green = (*w&gt;&gt;5) &amp; 0x1f;
	blue = (*w&gt;&gt;10) &amp; 0x1f;*/

	printf(&quot;%i_%i_%i &quot;, *w &amp; 0x1f, (*w&gt;&gt;5) &amp; 0x1f, (*w&gt;&gt;10) &amp; 0x1f);
}
</code></pre>
<p>raus kommen allerdings auch komische farbwerte!!</p>
<pre><code>21_21_21
22_22_22
23_23_23
...
</code></pre>
<p><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/1178379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1178379</guid><dc:creator><![CDATA[babelduo (net eingeloggt)]]></dc:creator><pubDate>Tue, 21 Nov 2006 11:33:57 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Tue, 21 Nov 2006 11:41:12 GMT]]></title><description><![CDATA[<p>babelduo (net eingeloggt) schrieb:</p>
<blockquote>
<p>raus kommen allerdings auch komische farbwerte!!</p>
<pre><code>21_21_21
22_22_22
23_23_23
...
</code></pre>
</blockquote>
<p>kann doch sein. vielleicht irgendwelche grautöne.<br />
aber vielleicht sind in meinem code auch fehler (operatorreihenfolge oder sowas).<br />
das prinzip sollte jedoch klar sein: jeweils 5 bits pro farbe, alle 3 in ein WORD gequetscht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1178387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1178387</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 21 Nov 2006 11:41:12 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sat, 09 Dec 2006 12:47:41 GMT]]></title><description><![CDATA[<p>so - ich war nun längere zeit nicht mehr aktiv wegen urlaub und so <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>habe mir nun eine testView-MFC-Anwendung geschrieben die einen Screenshot<br />
macht und ihn Pixel für Pixel ausgibt...</p>
<p><strong>das problem:</strong> das Bild hat nen komischen Farb-Stich <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 />
url: <a href="http://img87.imageshack.us/img87/7452/untitledlm0.jpg" rel="nofollow">http://img87.imageshack.us/img87/7452/untitledlm0.jpg</a></p>
<p>hier mein code:</p>
<p>das bild wird auf 800x600 geschrumpft...</p>
<pre><code>HDC hdc, hdc2;
		int width,height;

		width=800;
		height=600;

		hdc=::GetDC(NULL); 

		HBITMAP aBmp; 
		BITMAPINFO bi; 
		HGDIOBJ OldObj; 
		void *dibvalues; 

		BITMAPINFOHEADER bmih; 

		hdc2=CreateCompatibleDC(hdc); 

		ZeroMemory(&amp;bmih,sizeof(BITMAPINFOHEADER)); 
		bmih.biSize=sizeof(BITMAPINFOHEADER); 
		bmih.biHeight=height; 
		bmih.biWidth=width; 
		bmih.biPlanes=1; 
		bmih.biBitCount=16; 
		bmih.biCompression=BI_RGB; 
		bmih.biSizeImage = ((((bmih.biWidth * bmih.biBitCount) + 31) &amp; ~31) &gt;&gt; 3) * bmih.biHeight; 
		bmih.biXPelsPerMeter = 0; 
		bmih.biYPelsPerMeter = 0; 
		bmih.biClrImportant = 0; 

		bi.bmiHeader=bmih; 

		aBmp=CreateDIBSection(hdc,&amp;bi,DIB_RGB_COLORS,(void**)&amp;dibvalues,NULL,NULL); 

		if (aBmp==NULL) 
		{ 
			//OutputDebugString(&quot;CreateDIBSection failed!\n&quot;); 
		} 

		OldObj=SelectObject(hdc2,aBmp);

		StretchBlt(hdc2,0,0,width,height,hdc,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),SRCCOPY);

		// Screenshot ausgeben
		CDC* DC;
		DC=GetDC();

		int x=0;
		int y=height;

		int red,green,blue;

		for (int i=0; i&lt;height*width; i++)
		{
			WORD *w = (WORD*)dibvalues + i;

			red = *w &amp; 0x1f;
			green = (*w&gt;&gt;5) &amp; 0x1f;
			blue = (*w&gt;&gt;10) &amp; 0x1;

			DC-&gt;SetPixel(x,y,RGB(red,green,blue));

			x++;

			if(x==width)
			{
				x=0;
				y--;
			}
		}
</code></pre>
<p>woran liegt das? ansonsten klappt ja alles perfekt und ich kann<br />
weiterarbeiten <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>danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1189084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189084</guid><dc:creator><![CDATA[babelduo]]></dc:creator><pubDate>Sat, 09 Dec 2006 12:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschläge | Client-Server | Desktop übertragen on Sat, 09 Dec 2006 13:17:50 GMT]]></title><description><![CDATA[<p>Hi babelduo,</p>
<p>hast du die Möglichkeit den Code mal online zu stellen, bzw. komplett zu posten?</p>
<p>Mal sehen was sich da noch drehen lässt, interessiert mich das Thema.</p>
<p>lg<br />
Dibmen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1189097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189097</guid><dc:creator><![CDATA[Dibmen]]></dc:creator><pubDate>Sat, 09 Dec 2006 13:17:50 GMT</pubDate></item></channel></rss>