delphi抓全屏图,游戏窗口,游戏Client窗口
以下的抓图,来源于网上。
function dlGetDesktopRect(nLeft,nTop,nWidth,nHeight:integer;pixel:TPixelFormat):TBitmap;
var
dcDesk:hdc;
bmp:TBitmap;
begin
bmp:=TBitmap.Create;
bmp.PixelFormat := pixel;
bmp.Width:=nWidth;
bmp.Height:=nHeigth;
dcDesk:=GetDC(GetDesktopWindow);
BitBlt(bmp.Canvas.Handle,0,0,nWidth,nHeigth,dcDesk,nLeft,nTop,SRCCOPY) ;
result:=bmp;
DeleteDC(deskdc);
end;
抓全屏
bmp:=dlGetDesktopRect(0,0,screen.Width,screen.Height,pixel);
抓游戏窗口
GetWindowRect(hGame,rect);
bmp:=dlGetDesktopRect(rect.Left,rect.Top,rect.Right-rect.Left,rect.Bottom-rect.Top,pixel);
抓游戏Client窗口
ClientToScreen(hGame,rect);
bmp:=dlGetDesktopRect(rect.Left,rect.Top,rect.Right-rect.Left,rect.Bottom-rect.Top,pixel);
这样抓的是在前台活动的窗口图像,不管是普通的还是用DX画的。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步