<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=833567</guid>
        <pubDate>Mon, 22 Aug 2005 08:04:35 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=833567</link>
        <description><![CDATA[Rouse_: Во, вот тут правильно заголовок создается :) А про помощь - у меня дома сейчас инета нету, поэтому на выходных я не помошник :)]]></description>
        <author>Rouse_</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=832396</guid>
        <pubDate>Fri, 19 Aug 2005 15:52:59 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=832396</link>
        <description><![CDATA[Arazel: Спасибо тебе <strong class='tag-b'>Rouse</strong> за помощь&#33;&#33;&#33; Мне вот помогли.<br>
<br>
Может даже в FAQ положить   :) <br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">program ScrShop;</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">Windows;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure ApiScrCapture(FileName: String);</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp; TScr = array [0..1] of Byte;</div><div class="code_line">&nbsp;&nbsp; PScr = ^TScr;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; hBmp &nbsp; &nbsp; &nbsp; : hBitmap;</div><div class="code_line">&nbsp;&nbsp; DeskDC &nbsp; &nbsp; : hDC;</div><div class="code_line">&nbsp;&nbsp; DC &nbsp; &nbsp; &nbsp; &nbsp; : hDC;</div><div class="code_line">&nbsp;&nbsp; BFH &nbsp; &nbsp; &nbsp; &nbsp;: BITMAPFILEHEADER;</div><div class="code_line">&nbsp;&nbsp; BIH &nbsp; &nbsp; &nbsp; &nbsp;: tagBITMAPINFO;</div><div class="code_line">&nbsp;&nbsp; ScrX, ScrY : Integer;</div><div class="code_line">&nbsp;&nbsp; F &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: File;</div><div class="code_line">&nbsp;&nbsp; ScrSize &nbsp; &nbsp;: Cardinal;</div><div class="code_line">&nbsp;&nbsp; Bits &nbsp; &nbsp; &nbsp; : PScr;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; SCRX &nbsp; &nbsp; := GetSystemMetrics(SM_CXSCREEN);</div><div class="code_line">&nbsp;&nbsp; SCRY &nbsp; &nbsp; := GetSystemMetrics(SM_CYSCREEN);</div><div class="code_line">&nbsp;&nbsp; ScrSize &nbsp;:= ScrX * ScrY * 3;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; GetMem(Bits, ScrSize);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; DeskDC &nbsp; := GetDC(0);</div><div class="code_line">&nbsp;&nbsp; hBmp &nbsp; &nbsp; := CreateCompatibleBitmap(DeskDC, ScrX, ScrY);</div><div class="code_line">&nbsp;&nbsp; DC &nbsp; &nbsp; &nbsp; := CreateCompatibleDC(DeskDC);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; SelectObject(DC, hbmp);</div><div class="code_line">&nbsp;&nbsp; BitBlt(DC, 0, 0, SCRX, SCRY, DeskDC, 0, 0, SrcCopy);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; with BFH do</div><div class="code_line">&nbsp;&nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; bfType &nbsp; &nbsp; &nbsp;:= D42;</div><div class="code_line">&nbsp;&nbsp; &nbsp; bfSize &nbsp; &nbsp; &nbsp;:= SCRX * SCRY * 3 + SizeOf(BFH) + SizeOf(BIH);</div><div class="code_line">&nbsp;&nbsp; &nbsp; bfReserved1 := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; bfReserved2 := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; bfOffBits &nbsp; := SizeOf(BFH) + SizeOf(BIH);</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; with BIH.bmiHeader do</div><div class="code_line">&nbsp;&nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;biSize &nbsp; &nbsp; &nbsp; &nbsp; := sizeof(BIH);</div><div class="code_line">&nbsp;&nbsp; &nbsp;biWidth &nbsp; &nbsp; &nbsp; &nbsp;:= SCRX;</div><div class="code_line">&nbsp;&nbsp; &nbsp;biHeight &nbsp; &nbsp; &nbsp; := SCRY;</div><div class="code_line">&nbsp;&nbsp; &nbsp;biPlanes &nbsp; &nbsp; &nbsp; := 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;biBitCount &nbsp; &nbsp; := 24;</div><div class="code_line">&nbsp;&nbsp; &nbsp;biCompression &nbsp;:= BI_RGB;</div><div class="code_line">&nbsp;&nbsp; &nbsp;biSizeImage &nbsp; &nbsp;:= ScrSize;</div><div class="code_line">&nbsp;&nbsp; &nbsp;biClrImportant := 0;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; GetDiBits(DC, hbmp, 0, SCRY, Bits, BIH, DIB_RGB_COLORS);</div><div class="code_line">&nbsp;&nbsp; DeleteObject(hbmp);</div><div class="code_line">&nbsp;&nbsp; AssignFile(F, FileName);</div><div class="code_line">&nbsp;&nbsp; Rewrite(F, 1);</div><div class="code_line">&nbsp;&nbsp; Blockwrite(F, BFH, SizeOf(BFH));</div><div class="code_line">&nbsp;&nbsp; Blockwrite(F, BIH, SizeOf(BIH));</div><div class="code_line">&nbsp;&nbsp; Blockwrite(F, bits^, ScrSize);</div><div class="code_line">&nbsp;&nbsp; CloseFile(F);</div><div class="code_line">&nbsp;&nbsp; FreeMem(Bits);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; ApiScrCapture(&#39;1.bmp&#39;);</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Arazel</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=832341</guid>
        <pubDate>Fri, 19 Aug 2005 14:21:55 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=832341</link>
        <description><![CDATA[Arazel: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.Button3Click(Sender: TObject);</div><div class="code_line">type aob=array [0..10000000] of byte;</div><div class="code_line">var str:string;</div><div class="code_line">&nbsp;&nbsp; &nbsp;i:integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;fs:longint;</div><div class="code_line">&nbsp;&nbsp; &nbsp;iw,ih:integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;bi:tagbitmapinfo;</div><div class="code_line">&nbsp;&nbsp; &nbsp;bits:pointer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;src:^aob;</div><div class="code_line">&nbsp;&nbsp; &nbsp;numwritten,temp:integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;cnt:longint;</div><div class="code_line">&nbsp;&nbsp; &nbsp;destlen:longint;</div><div class="code_line">&nbsp;&nbsp; &nbsp;f:file;</div><div class="code_line">&nbsp;&nbsp; &nbsp;tmp:cardinal;</div><div class="code_line">&nbsp;&nbsp; &nbsp;opt:byte;</div><div class="code_line">label exitproc;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;enablecancel(&#39;Capturing&#39;);</div><div class="code_line">&nbsp;&nbsp;status.panels[1].text:=&#39;Server is capturing... Be patient&#39;;</div><div class="code_line">&nbsp;&nbsp;client.socket.SendText(&#39;screen?&#39;#13);</div><div class="code_line">&nbsp;&nbsp;{captscriscaller:=true;}</div><div class="code_line">&nbsp;&nbsp;str:=wait_n_receive;</div><div class="code_line">&nbsp;&nbsp;if str=&#39;&#39; then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;goto exitproc;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;i:=pos(&#39;x&#39;,str);</div><div class="code_line">&nbsp;&nbsp;iw:=strtoint(copy(str,0,i-1)); ih:=strtoint(copy(str,i+1,length(str)-i));</div><div class="code_line">&nbsp;&nbsp;client.socket.SendText(&#39;n!&#39;#13);</div><div class="code_line">&nbsp;&nbsp;captscriscaller:=true; str:=wait_n_receive;</div><div class="code_line">&nbsp;&nbsp;if str=&#39;&#39; then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;goto exitproc;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;i:=pos(&#39;?&#39;,str);</div><div class="code_line">&nbsp;&nbsp;if copy(str,0,i-1)=&#39;sending&#39; then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;if str[i+2]=&#39;.&#39; then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;opt:=byte(str[i+1])-48; i:=i+2;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end else begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// support for old versions below 1.15</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;opt:=1; // 1=nonzero</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;fs:=strtoint(copy(str,i+1,length(str)-i));</div><div class="code_line">&nbsp;&nbsp; &nbsp;getmem(src,fs+100);</div><div class="code_line">&nbsp;&nbsp; &nbsp;form1.status.panels[1].text:=&#39;0%&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;form1.client.socket.sendtext(&#39;c!&#39;#13); cnt:=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;temp:=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;tmp:=gettickcount;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Application.ProcessMessages;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;numwritten:=form1.client.socket.receivelength;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;form1.client.socket.ReceiveBuf(pointer(longint(src)+cnt)^,numwritten);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;temp:=temp+numwritten;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if unconnected then exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if tmp+20000&#60;=gettickcount then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;messagedlg(&#39;Server is not answering, try to Reconnect.&#39;,mterror,[mbok],0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;client.Socket.Close;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;until (temp&#62;=8192)or(temp&#62;=fs-cnt);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if cancel then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;goto exitproc;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;form1.client.socket.sendtext(&#39;n!&#39;#13);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;cnt:=cnt+temp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;form1.status.panels[1].text:=inttostr(100*cnt div fs)+&#39;% &nbsp;(&#39;+inttostr(cnt)+&#39;/&#39;+inttostr(fs)+&#39;)&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;until cnt&#62;=fs;</div><div class="code_line">&nbsp;&nbsp; &nbsp;form1.client.socket.sendtext(&#39;n!&#39;#13);</div><div class="code_line">&nbsp;&nbsp;end else begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;status.panels[1].text:=&#39;Error happened&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;goto exitproc;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;status.panels[1].text:=&#39;Ready!&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;disablecancel;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;destlen:=iw*ih*3;</div><div class="code_line">&nbsp;&nbsp;getmem(bits,destlen+1000);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;if opt=0 then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;lzo1x_decompress(src,fs,bits,@destlen,nil);</div><div class="code_line">&nbsp;&nbsp;end else</div><div class="code_line">&nbsp;&nbsp; &nbsp;uncompress(bits,destlen,src^,fs);</div><div class="code_line">&nbsp;</div><div class="code_line">// &nbsp;assignfile(f,&#39;lastpic.gz&#39;); rewrite(f,1);</div><div class="code_line">// &nbsp;blockwrite(f,src^,fs); closefile(f);</div><div class="code_line">&nbsp;</div><div class="code_line">// &nbsp;assignfile(f,&#39;lastpic.tmp&#39;); rewrite(f,1);</div><div class="code_line">// &nbsp;blockwrite(f,bits^,destlen); closefile(f);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;freemem(src);</div><div class="code_line">&nbsp;&nbsp;form2.Height:=screen.height; form2.width:=screen.width;</div><div class="code_line">&nbsp;&nbsp;form2.top:=0; form2.left:=0;</div><div class="code_line">&nbsp;&nbsp;form2.show;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biSize:=sizeof(tbitmapinfoheader);</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biWidth:=iw;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biHeight:=ih;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biPlanes:=1;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biBitCount:=24;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biCompression:=BI_RGB;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biSizeImage:=0;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biClrUsed:=0;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biClrImportant:=0;</div><div class="code_line">&nbsp;&nbsp;stretchdibits(getwindowdc(getdesktopwindow),0,0,iw,ih,0,0,screen.width,screen.height,bits,bi,DIB_RGB_COLORS,SrcCopy);</div><div class="code_line">&nbsp;&nbsp;freemem(bits);</div><div class="code_line">&nbsp;</div><div class="code_line">exitproc:</div><div class="code_line">&nbsp;&nbsp;form1.client.socket.sendtext(&#39;e!&#39;#13);</div><div class="code_line">&nbsp;&nbsp;disablecancel;</div><div class="code_line">&nbsp;&nbsp;cancel:=false;</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>Arazel</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831934</guid>
        <pubDate>Fri, 19 Aug 2005 08:46:06 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831934</link>
        <description><![CDATA[Rouse_: Тут ыт отправляешь пакет, а ты покажи мне как он принимается...]]></description>
        <author>Rouse_</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831659</guid>
        <pubDate>Thu, 18 Aug 2005 22:45:40 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831659</link>
        <description><![CDATA[Arazel: Ну  помогите  :huh:]]></description>
        <author>Arazel</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831448</guid>
        <pubDate>Thu, 18 Aug 2005 15:59:38 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831448</link>
        <description><![CDATA[Arazel: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=111814&view=findpost&p=831273'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Rouse_ &#064; <time class="tag-quote__quoted-time" datetime="2005-08-18T13:23:15+00:00">18.08.05, 13:23</time></span><div class='quote '>Угу, только ты имеешь чистый растр, а заголовок Пушкин делать будет? </div></div><br>
<br>
Тебе не  кажется что вот этот код сохдает заголовок?<br>
Мне так кажется  :) <br>
<br>
  <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">GetDiBits(DeskDC,hBmp,0,SCRY,nil,BmpInfo,DIB_RGB_COLORS);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biWidth:=SCRX;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biHeight:=SCRY;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biPlanes:=1;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biBitCount:=24;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biCompression:=BI_RGB;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biSizeImage:=ScrSize;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biClrImportant:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;GetDiBits(DeskDC,hbmp,0,SCRY,Bits,BmpInfo,DIB_RGB_COLORS);</div></ol></div></div></div></div>]]></description>
        <author>Arazel</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831372</guid>
        <pubDate>Thu, 18 Aug 2005 14:47:18 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831372</link>
        <description><![CDATA[Arazel: Вот и про  тоже САМ КОД ПРОГРАММЫ НЕ  РАБОТАЕТ&#33;&#33;&#33;  :(  но екзешник работает  :unsure:]]></description>
        <author>Arazel</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831300</guid>
        <pubDate>Thu, 18 Aug 2005 13:46:25 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831300</link>
        <description><![CDATA[Rouse_: Буу, чего то я не врубился... Покажи как он сохраняет при получении данных на стороне сервака?]]></description>
        <author>Rouse_</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831286</guid>
        <pubDate>Thu, 18 Aug 2005 13:30:13 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831286</link>
        <description><![CDATA[Arazel: Тогда как этот код сохраняет?<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure capturescr;</div><div class="code_line">var</div><div class="code_line">{ &nbsp;outfile : gzFile;}</div><div class="code_line">&nbsp;&nbsp;bmp,bmp2:hbitmap;</div><div class="code_line">&nbsp;&nbsp;deskdc,dc:hdc;</div><div class="code_line">{ &nbsp;tmp:longint;}</div><div class="code_line">&nbsp;&nbsp;bi:tagbitmapinfo;</div><div class="code_line">&nbsp;&nbsp;SCRX,SCRY:integer;</div><div class="code_line">&nbsp;&nbsp;st:string;</div><div class="code_line">&nbsp;&nbsp;dest:pbytef;</div><div class="code_line">&nbsp;&nbsp;destlen:longint;</div><div class="code_line">&nbsp;&nbsp;s:string;</div><div class="code_line">&nbsp;&nbsp;cnt:longint;</div><div class="code_line">&nbsp;&nbsp;numread:integer;</div><div class="code_line">&nbsp;&nbsp;wrkmem:pointer;</div><div class="code_line">&nbsp;&nbsp;bits:pbytearray;</div><div class="code_line">&nbsp;&nbsp;f:file;</div><div class="code_line">begin</div><div class="code_line">{ &nbsp;setwindowtext(mainwin,&#39;Initializing&#39;);}</div><div class="code_line">&nbsp;&nbsp;SCRX:=getsystemmetrics(SM_CXSCREEN);</div><div class="code_line">&nbsp;&nbsp;SCRY:=getsystemmetrics(SM_CYSCREEN);</div><div class="code_line">&nbsp;&nbsp;SCREENSIZE:=scrx*scry*3;</div><div class="code_line">&nbsp;&nbsp;getmem(bits,SCREENSIZE);</div><div class="code_line">// &nbsp;setlength(bits,SCREENSIZE);</div><div class="code_line">&nbsp;&nbsp;deskdc:=getwindowdc(getdesktopwindow);</div><div class="code_line">&nbsp;&nbsp;bmp:=createcompatiblebitmap(deskdc,SCRX,SCRY);</div><div class="code_line">&nbsp;&nbsp;bmp2:=createcompatiblebitmap(deskdc,1,1);</div><div class="code_line">&nbsp;&nbsp;dc:=createcompatibledc(deskdc);</div><div class="code_line">{ &nbsp;tmp:=}selectobject(dc,bmp);</div><div class="code_line">{ &nbsp;setwindowtext(mainwin,&#39;BitBlt-ing&#39;);}</div><div class="code_line">&nbsp;&nbsp;bitblt(dc,0,0,SCRX,SCRY,deskdc,0,0,SrcCopy);</div><div class="code_line">&nbsp;&nbsp;selectobject(dc,bmp2);</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biSize:=sizeof(tagbitmapinfoheader);</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biBitCount:=0;</div><div class="code_line">&nbsp;&nbsp;getdibits(deskdc,bmp,0,SCRY,nil,bi,DIB_RGB_COLORS);</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biWidth:=SCRX;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biHeight:=SCRY;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biPlanes:=1;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biBitCount:=24;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biCompression:=BI_RGB;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biSizeImage:=SCREENSIZE;</div><div class="code_line">&nbsp;&nbsp;bi.bmiHeader.biClrImportant:=0;</div><div class="code_line">&nbsp;&nbsp;getdibits(deskdc,bmp,0,SCRY,bits,bi,DIB_RGB_COLORS);</div><div class="code_line">&nbsp;&nbsp;deleteobject(bmp);</div><div class="code_line">&nbsp;&nbsp;deleteobject(bmp2);</div><div class="code_line">&nbsp;&nbsp;st:=inttostr(SCRX)+&#39;x&#39;+inttostr(SCRY)+#13;</div><div class="code_line">&nbsp;&nbsp;send(conserver,st[1],length(st),0);</div><div class="code_line">&nbsp;&nbsp;wait_n_receive;</div><div class="code_line">&nbsp;&nbsp;getmem(dest,screensize);</div><div class="code_line">&nbsp;&nbsp;destlen:=SCREENSIZE;</div><div class="code_line">&nbsp;&nbsp;if options.optfor=0 then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;getmem(wrkmem,50000);</div><div class="code_line">&nbsp;&nbsp; &nbsp;lzo1x_1_compress(bits,SCREENSIZE,dest,@destlen,wrkmem);</div><div class="code_line">&nbsp;&nbsp; &nbsp;freemem(wrkmem);</div><div class="code_line">&nbsp;&nbsp;end else</div><div class="code_line">&nbsp;&nbsp; &nbsp;compress(dest,destlen,bits^,SCREENSIZE,options.optfor);</div><div class="code_line">&nbsp;// finalize(bits);</div><div class="code_line">&nbsp;&nbsp; freemem(bits);</div><div class="code_line">{ &nbsp;setwindowtext(mainwin,&#39;SendFile&#39;);}</div><div class="code_line">&nbsp;&nbsp;s:=&#39;sending?&#39;+inttostr(options.optfor)+&#39;.&#39;+inttostr(destlen)+#13; send(conserver,s[1],length(s),0);</div><div class="code_line">&nbsp;&nbsp;if wait_n_receive&#60;&#62;&#39;c!&#39; then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;freemem(dest,SCREENSIZE); exit;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;/// DEBUG ///////////////////////////////////////////</div><div class="code_line">assign(f,&#39;c:\win98bmk.tmp&#39;);</div><div class="code_line">&nbsp;&nbsp;rewrite(f,1);</div><div class="code_line">&nbsp;&nbsp;blockwrite(f,dest^,destlen);</div><div class="code_line">&nbsp;&nbsp;close(f); /// DEBUG ///////////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp;/// DEBUG ///////////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp;/// DEBUG ///////////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp;/// DEBUG ///////////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp;/// DEBUG ///////////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp;/// DEBUG ///////////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp;/// DEBUG ///////////////////////////////////////////</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;cnt:=0;</div><div class="code_line">&nbsp;&nbsp;repeat</div><div class="code_line">{ &nbsp; &nbsp;blockread(f,buf,8192,numread);}</div><div class="code_line">&nbsp;&nbsp; &nbsp;if cnt+8192&#62;=destlen then numread:=destlen-cnt else numread:=8192;</div><div class="code_line">&nbsp;&nbsp; &nbsp;send(conserver,pointer(longint(dest)+cnt)^,numread,0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;cnt:=cnt+numread;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if wait_n_receive&#60;&#62;&#39;n!&#39; then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;freemem(dest,screensize); exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;until cnt&#62;=destlen;</div><div class="code_line">{ &nbsp;setwindowtext(mainwin,&#39;SendFile OK&#39;);}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;freemem(dest,screensize);</div><div class="code_line">{ &nbsp;erase(&#39;wrdt1675.tmp&#39;);}</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>Arazel</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831273</guid>
        <pubDate>Thu, 18 Aug 2005 13:23:15 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831273</link>
        <description><![CDATA[Rouse_: Угу, только ты имеешь чистый растр, а заголовок Пушкин делать будет? ;)]]></description>
        <author>Rouse_</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831189</guid>
        <pubDate>Thu, 18 Aug 2005 12:25:23 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831189</link>
        <description><![CDATA[Arazel: Сейчас посмотрю... <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-08-18T12:31:11+00:00">18.08.05, 12:31</time></span></span><br>
Но мы уже имеем в Bits изображение по идее   :whistle: <br>
Вот здесь он из Handle заполняет  :huh: <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">GetDiBits(DeskDC,hbmp,0,SCRY,Bits,BmpInfo,DIB_RGB_COLORS);</div></ol></div></div></div></div>]]></description>
        <author>Arazel</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831187</guid>
        <pubDate>Thu, 18 Aug 2005 12:23:40 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831187</link>
        <description><![CDATA[Rouse_: Ты что? Ктож так сохраняет? Посмотри как это делается на примере иконки: <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=97226' target='_blank'>Как сохранить иконку в файл имея её хендл</a><br>
Там есть ссылка на формат, вот там ищи описание BMP и делай по аналогии...]]></description>
        <author>Rouse_</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831161</guid>
        <pubDate>Thu, 18 Aug 2005 12:05:06 +0000</pubDate>
        <title>Помогите сохранить экран&amp;#33;&amp;#33;&amp;#33; WinAPI</title>
        <link>https://forum.sources.ru/index.php?showtopic=111814&amp;view=findpost&amp;p=831161</link>
        <description><![CDATA[Arazel: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">program ScrShop;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows,</div><div class="code_line">&nbsp;&nbsp;Messages;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Function ApiScrCapture(FileName:String):HDC;</div><div class="code_line">Type</div><div class="code_line">&nbsp;&nbsp;TScr = array [0..10000000*3] of Byte;</div><div class="code_line">&nbsp;&nbsp;PScr = &nbsp;^TScr;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;TBmp &nbsp; &nbsp; : TBitmap;</div><div class="code_line">&nbsp;&nbsp;hBmp &nbsp; &nbsp; : hBitmap;</div><div class="code_line">&nbsp;&nbsp;DeskDC &nbsp; : hDC;</div><div class="code_line">&nbsp;&nbsp;DC &nbsp; &nbsp; &nbsp; : hDC;</div><div class="code_line">&nbsp;&nbsp;BmpInfo &nbsp;: tagBitmapInfo;</div><div class="code_line">&nbsp;&nbsp;ScrX,ScrY: Integer;</div><div class="code_line">&nbsp;&nbsp;F &nbsp; &nbsp; &nbsp; &nbsp;: File;</div><div class="code_line">&nbsp;&nbsp;ScrSize &nbsp;: Cardinal;</div><div class="code_line">&nbsp;&nbsp;Bits &nbsp; &nbsp; : PScr;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;GetMem(Bits,ScrSize);</div><div class="code_line">&nbsp;&nbsp;SCRX &nbsp; &nbsp; := GetSystemMetrics(SM_CXSCREEN);</div><div class="code_line">&nbsp;&nbsp;SCRY &nbsp; &nbsp; := GetSystemMetrics(SM_CYSCREEN);</div><div class="code_line">&nbsp;&nbsp;ScrSize &nbsp;:= ScrX*ScrY*3;</div><div class="code_line">&nbsp;&nbsp;New(bits);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;DeskDC &nbsp; := GetWindowDC(GetDesktopWindow);</div><div class="code_line">&nbsp;&nbsp;hBmp &nbsp; &nbsp; := CreateCompatibleBitmap(deskdc,ScrX,ScrY);</div><div class="code_line">&nbsp;&nbsp;DC &nbsp; &nbsp; &nbsp; := CreateCompatibleDC(DeskDC);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;SelectObject(dc,hbmp);</div><div class="code_line">&nbsp;&nbsp;BitBlt(Dc,0,0,SCRX,SCRY,deskdc,0,0,SrcCopy);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biSize:=sizeof(tagBitmapInfoHeader);</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biBitCount:=0;</div><div class="code_line">&nbsp;&nbsp;GetDiBits(DeskDC,hBmp,0,SCRY,nil,BmpInfo,DIB_RGB_COLORS);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biWidth:=SCRX;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biHeight:=SCRY;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biPlanes:=1;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biBitCount:=24;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biCompression:=BI_RGB;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biSizeImage:=ScrSize;</div><div class="code_line">&nbsp;&nbsp;BmpInfo.bmiHeader.biClrImportant:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;GetDiBits(DeskDC,hbmp,0,SCRY,Bits,BmpInfo,DIB_RGB_COLORS);</div><div class="code_line">&nbsp;&nbsp;DeleteObject(hbmp);</div><div class="code_line">&nbsp;&nbsp;Result:=DeskDC;</div><div class="code_line">//------- Что то не сохраняется :( -------//</div><div class="code_line">&nbsp;&nbsp;AssignFile(F,FileName);</div><div class="code_line">&nbsp;&nbsp;Rewrite(F,1);</div><div class="code_line">&nbsp;&nbsp;Blockwrite(F,bits^,ScrSize);</div><div class="code_line">&nbsp;&nbsp;closeFile(F);</div><div class="code_line">&nbsp;&nbsp;FreeMem(Bits,ScrSize);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;ApiScrCapture(&#39;1.bmp&#39;);</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>Arazel</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      </channel>
      </rss>
	