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 superobject 序列数据集

Delphi 判断网络是否连通

Delphi 获取网页代码单元

Delphi获取当前计算机所有盘符

Delphi 编写网址加密解密代码

Delphi 10.4.1的编译器bug终于修正了!

Delphi 十六进制字符串转化成字符串输出hextostr strtohex(Delphi版、c#版)

Delphi 动态修改exe文件的图标

Delphi反调试【初级】检测法

Delphi 获取 treeview选中的文件路径

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



打赏

取消

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

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

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

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

评论

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