<?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=75199&amp;view=findpost&amp;p=1034683</guid>
        <pubDate>Sun, 05 Mar 2006 17:27:05 +0000</pubDate>
        <title>Скриншот</title>
        <link>https://forum.sources.ru/index.php?showtopic=75199&amp;view=findpost&amp;p=1034683</link>
        <description><![CDATA[Smike: Универсальный способ - скриншот с прозрачностью:<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 CaptureScreen(AFileName: string);</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp;CAPTUREBLT = 000000;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;hdcScreen: HDC;</div><div class="code_line">&nbsp;&nbsp;hdcCompatible: HDC;</div><div class="code_line">&nbsp;&nbsp;bmp: TBitmap;</div><div class="code_line">&nbsp;&nbsp;hbmScreen: HBITMAP;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;// Create a normal DC and a memory DC for the entire screen. The</div><div class="code_line">&nbsp;&nbsp;// normal DC provides a &quot;snapshot&quot; of the screen contents. The</div><div class="code_line">&nbsp;&nbsp;// memory DC keeps a copy of this &quot;snapshot&quot; in the associated</div><div class="code_line">&nbsp;&nbsp;// bitmap.</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;hdcScreen := CreateDC(&#39;DISPLAY&#39;, nil, nil, nil);</div><div class="code_line">&nbsp;&nbsp;hdcCompatible := CreateCompatibleDC(hdcScreen);</div><div class="code_line">&nbsp;&nbsp;// Create a compatible bitmap for hdcScreen.</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;hbmScreen := CreateCompatibleBitmap(hdcScreen,</div><div class="code_line">&nbsp;&nbsp; &nbsp;GetDeviceCaps(hdcScreen, HORZRES),</div><div class="code_line">&nbsp;&nbsp; &nbsp;GetDeviceCaps(hdcScreen, VERTRES));</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;// Select the bitmaps into the compatible DC.</div><div class="code_line">&nbsp;&nbsp;SelectObject(hdcCompatible, hbmScreen);</div><div class="code_line">&nbsp;&nbsp;bmp := TBitmap.Create;</div><div class="code_line">&nbsp;&nbsp;bmp.Handle := hbmScreen;</div><div class="code_line">&nbsp;&nbsp;BitBlt(hdcCompatible,</div><div class="code_line">&nbsp;&nbsp; &nbsp;0, 0,</div><div class="code_line">&nbsp;&nbsp; &nbsp;bmp.Width, bmp.Height,</div><div class="code_line">&nbsp;&nbsp; &nbsp;hdcScreen,</div><div class="code_line">&nbsp;&nbsp; &nbsp;0, 0,</div><div class="code_line">&nbsp;&nbsp; &nbsp;SRCCOPY or CAPTUREBLT);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;bmp.SaveToFile(AFileName);</div><div class="code_line">&nbsp;&nbsp;bmp.Free;</div><div class="code_line">&nbsp;&nbsp;DeleteDC(hdcScreen);</div><div class="code_line">&nbsp;&nbsp;DeleteDC(hdcCompatible);</div><div class="code_line">end;</div><div class="code_line">// from http://www.swissdelphicenter.ch</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Smike</author>
        <category>Графика, звук, анимация, игры</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=75199&amp;view=findpost&amp;p=662251</guid>
        <pubDate>Tue, 29 Mar 2005 03:51:46 +0000</pubDate>
        <title>Скриншот</title>
        <link>https://forum.sources.ru/index.php?showtopic=75199&amp;view=findpost&amp;p=662251</link>
        <description><![CDATA[s-mike: Еще один способ получения скриншота окна, на чистом WinApi:<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">function CreateWindwowBitmap(Wnd: HWND): HBITMAP;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;R: TRect;</div><div class="code_line">&nbsp;&nbsp;W, H: Integer;</div><div class="code_line">&nbsp;&nbsp;DC, memDC: HDC;</div><div class="code_line">&nbsp;&nbsp;bm, oldBM: HBITMAP;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;GetWindowRect(Wnd, R);</div><div class="code_line">&nbsp;&nbsp;W := R.Right - R.Left;</div><div class="code_line">&nbsp;&nbsp;H := R.Bottom - R.Top;</div><div class="code_line">&nbsp;&nbsp;DC := GetWindowDC(Wnd);</div><div class="code_line">&nbsp;&nbsp;memDC := CreateCompatibleDC(DC);</div><div class="code_line">&nbsp;&nbsp;bm := CreateCompatibleBitmap(DC, W, H);</div><div class="code_line">&nbsp;&nbsp;oldBM := SelectObject(memDC, bm);</div><div class="code_line">&nbsp;&nbsp;BitBlt(memDC, 0,0, w, h, DC, 0,0, SRCCOPY);</div><div class="code_line">&nbsp;&nbsp;SelectObject(memDC, oldBM);</div><div class="code_line">&nbsp;&nbsp;DeleteDC(memDC);</div><div class="code_line">&nbsp;&nbsp;DeleteObject(oldBM);</div><div class="code_line">&nbsp;&nbsp;ReleaseDC(Wnd, DC);</div><div class="code_line">&nbsp;&nbsp;Result := bm;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<strong class='tag-b'><br>
Автор:</strong> <a class='tag-url' href='http://forum.sources.ru/index.php?showuser=12367' target='_blank'>Krid</a>]]></description>
        <author>s-mike</author>
        <category>Графика, звук, анимация, игры</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=75199&amp;view=findpost&amp;p=599946</guid>
        <pubDate>Thu, 03 Feb 2005 11:04:21 +0000</pubDate>
        <title>Скриншот</title>
        <link>https://forum.sources.ru/index.php?showtopic=75199&amp;view=findpost&amp;p=599946</link>
        <description><![CDATA[Song: Ещё способ:<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">keybd_event(VK_SNAPSHOT,1,KEYEVENTF_KEYUP,0);</div><div class="code_line">OpenClipBoard(Form1.handle);</div><div class="code_line">try</div><div class="code_line">&nbsp;SetClipBoardData(CF_DIB,Form1.handle);</div><div class="code_line">&nbsp;vv:=GetClipBoardData(CF_BITMAP);</div><div class="code_line">&nbsp;Image1.Picture.LoadFromClipboardFormat(CF_BITMAP,vv,0);</div><div class="code_line">finally</div><div class="code_line">&nbsp;CloseClipBoard; </div><div class="code_line">&nbsp;EmptyClipBoard;</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>Song</author>
        <category>Графика, звук, анимация, игры</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=75199&amp;view=findpost&amp;p=535295</guid>
        <pubDate>Tue, 07 Dec 2004 09:54:27 +0000</pubDate>
        <title>Скриншот</title>
        <link>https://forum.sources.ru/index.php?showtopic=75199&amp;view=findpost&amp;p=535295</link>
        <description><![CDATA[Rouse_: <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">// В качестве параметров передаются:</div><div class="code_line">// AHandle - хэндл окна, скриншот которого мы хочем получить</div><div class="code_line">// CompressPercent - процент сжатия картинки</div><div class="code_line">// AImage - картинка, в которую будет помещено изображение</div><div class="code_line">// в случае успешного скриншота функция вернет True</div><div class="code_line">function GetScreenShot(const AHandle: THandle; const CompressPercent: Byte;</div><div class="code_line">&nbsp;&nbsp;var AImage: TJPEGImage): Boolean;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;fBitmap: TBitmap;</div><div class="code_line">&nbsp;&nbsp;DC: HDC;</div><div class="code_line">&nbsp;&nbsp;Rect: TRect;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Result := False;</div><div class="code_line">&nbsp;&nbsp;if AImage = nil then Exit;</div><div class="code_line">&nbsp;&nbsp;DC := GetDC(AHandle);</div><div class="code_line">&nbsp;&nbsp;if DC &#60;&#62; 0 then</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;fBitmap := TBitmap.Create;</div><div class="code_line">&nbsp;&nbsp; &nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if not GetClientRect(AHandle, Rect) then Exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;fBitmap.Width := Rect.Right - Rect.Left;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;fBitmap.Height := Rect.Bottom - Rect.Top;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;fBitmap.PixelFormat := pf32bit;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := BitBlt(fBitmap.Canvas.Handle, 0, 0, fBitmap.Width,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;fBitmap.Height, DC, 0, 0, SRCCOPY);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if not Result then Exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;AImage.Assign(fBitmap);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;AImage.CompressionQuality := CompressPercent;</div><div class="code_line">&nbsp;&nbsp; &nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;fBitmap.Free;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp;ReleaseDC(AHandle, DC);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">// Пример использования...</div><div class="code_line">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Image: TJPEGImage;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;// Скриншот рабочего стола</div><div class="code_line">&nbsp;&nbsp;Image := TJPEGImage.Create;</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;if GetScreenShot(GetDesktopWindow, 150, Image) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Image1.Picture.Assign(Image);</div><div class="code_line">&nbsp;&nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp;Image.Free;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;// Скриншот нашей формы</div><div class="code_line">&nbsp;&nbsp;Image := TJPEGImage.Create;</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;if GetScreenShot(Handle, 150, Image) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Image2.Picture.Assign(Image);</div><div class="code_line">&nbsp;&nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp;Image.Free;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>Rouse_</author>
        <category>Графика, звук, анимация, игры</category>
      </item>
	
      </channel>
      </rss>
	