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简单的播放声音

Delphi debug release区别是什么?

Delphi controlcount和componentcount的区别

Delphi 关于 class helper for ... 语法

Delphi 将base64字符串转化为jpeg图片

关于Delphi下的三元运算符(三目运算)

Delphi 使用onvalidate事件或onvalidating事件验证在输入字段(tedit)中输入的值

Delphi webbroker isapi 示例说明

Delphi 调用cmd命令行并取得返回结果

Delphi 用cxgrid显示联合查询数据和更改数据

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



打赏

取消

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

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

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

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

评论

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