Delphi 对非活动窗口进行屏幕截图


本文整理自网络,侵删。

 
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;//www.delphitop.com
      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*)



procedure TForm2.Button1Click(Sender: TObject);

begin
Image1.Picture:=nil;
WindowSnap(Self.Handle, Image1.Picture.Bitmap) ;
Image1.Refresh;

end;

相关阅读 >>

Delphi idhttp多线程下载

Delphi 取控件下的图象

Delphi处理http请求自定义header

Delphi 得到执行程序的当前所在完整路径

Delphi xe android]获取屏幕的物理分辨率

Delphi xe10 安卓设备信息

Delphi实现获取密码框中的密码

Delphi 移动windows开始按钮到任务栏中的任何位置

Delphi xe ioutils tpath(结构体) 的方法与属性

Delphi 10.3.1 android沉浸式透明状态栏

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...