
正文
Taking a screen shot of a window using Delphi code is rather easy.
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Taking a screen shot of a window using Delphi code is rather easy.
A screen shot (screen capture) is a copy of the screen's contents that
can be saved as a graphics file or displayed in a graphics "aware" control, for
example TImage.
In most cases you will want to take a screen shot of the active window or the
Windows Desktop.
What if you need to do a screen capture of all the running applications -
most of them will be inactive and not visible to the user?
WindowSnap - Inactive Window Screen Capture
Ads
Delphi Globalization Tool
www.tsilang.com
Globalize your Delphi applications easy, professionally
and fast!
and fast!
Image Library for Delphi
www.imageen.com
Create professional multimedia and photo apps with
Delphi and ImageEn
Delphi and ImageEn
XLSReadWriteII for Delphi
www.axolot.com
Native VCL component for reading & writing Excel
files with Delphi/C++
files with Delphi/C++
- API
- Net Components
- Open API Management
- Delphi
- Screen Capture Windows
Windows XP also introduces
the new printing API, PrintWindow. This API enables the caller to snapshot a
visual copy of a window into a device context.
Drop a TImage (named "Image1") on a form and use the following code:
The actual WindowSnap function is defined as:
uses Windows; //if not already used
function WindowSnap(windowHandle: HWND; bmp: TBitmap): boolean; var r: TRect; user32DLLHandle: THandle; printWindowAPI: function(sourceHandle: HWND; destinationHandle: HDC; nFlags: UINT): BOOL; stdcall; begin result := False; user32DLLHandle := GetModuleHandle(user32) ; if user32DLLHandle <> 0 then begin @printWindowAPI := GetProcAddress(user32DLLHandle, 'PrintWindow') ; if @printWindowAPI <> nil then begin GetWindowRect(windowHandle, r) ; bmp.Width := r.Right - r.Left; bmp.Height := r.Bottom - r.Top; bmp.Canvas.Lock; try result := printWindowAPI(windowHandle, bmp.Canvas.Handle, 0) ; finally bmp.Canvas.Unlock; end; end; end; end; (*WindowSnap*)
Ads
C# Tutorial for Beginners
www.eurekalearn.net
Learn C# quickly and easily. Download your Free eBook now.
Fastest VPN for China
expressvpn.com
Unblock any Site. Try it Risk Free. 256-Bit SSL. High Speed Guaranteed!
Note that the first parameter to the WindowSnap procedure is a HWND value (THandle) - the handle of the window you want to capture.
WinDowse is an extremely convenient and easy to use tool for obtaining necessary technical information about any window (handle, child windows, etc.)
Here's an idea: enumerate top-level windows (to grab their handles) and create your own task-switcher :)








