怎么实现抓取当前活动窗口? ( 积分: 50 )

  • 主题发起人 主题发起人 wjf821119
  • 开始时间 开始时间
W

wjf821119

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么实现抓取当前活动窗口,请高手们给我指点解决,如果谁有例子麻烦给我一份,我的邮箱是:happy_boy99@163.com
谢谢了。
 
怎么实现抓取当前活动窗口,请高手们给我指点解决,如果谁有例子麻烦给我一份,我的邮箱是:happy_boy99@163.com
谢谢了。
 
GetActiveWindow就是当前激活窗口的句柄,你要做什么
 
我想把当前活动窗口抓图下来,保存为bmp,不知道怎么实现。
屏幕抓屏我会,就是当前活动窗口不知道怎么实现抓图
 
找了个代码,供参考
http://www.delphibbs.com/delphibbs/dispq.asp?LID=2050123
标题是: 如何截取当前窗口为图片 (100分)
--------------------------转自网络
procedure TForm1.Timer1Timer(Sender: TObject);
var
Bild:TBitmap;
c:TCanvas;
r,t:TRect;
h:THandle;
ExeFilePath:string;
begin
ExeFilePath:=ExtractFilePath(Application.ExeName);
c:=TCanvas.Create;
c.Handle:=GetWindowDC(GetDesktopWindow);
//获得当前活动窗口的句柄
h:=GetForeGroundWindow;
Bild:=TBitmap.Create;
if h<>0 then
//结构t保存该窗口的左上角和右下角的坐标值(相对于屏幕左上角)
GetWindowRect(h,t);
try
r:=Rect(0,0,t.Right-t.Left,t.Bottom-t.Top);
Bild.Width:=t.Right-t.Left;
Bild.Height:=t.Bottom-t.Top;
Bild.Canvas.CopyRect(r,c,t);
//抓屏结果保存在与EXE相同目录下
Bild.SaveToFile(ExeFilePath+'screen.bmp');
finally
Bild.Free;
end;
end;
--------------------------------
我喜欢下面这种
ActiveWindow:=GetActiveWindow;
DC:=GetWindowDC(ActiveWindow);
GetWindowRect(ActiveWindow,Rect);
Bitblt(Image1.Canvas.Handle,0,0,Image1.Width,Image1.Height,DC,0,0,SRCCOPY);
ReleaseDC(ActiveWindow,DC);
[:D][:D]
 
问题太简单了,按住shift+PrScrn即可,打开画图工具后粘贴即可。如果想用程序实现,可用Api函数BitBlt拷贝即可
 
谢谢你们的帮助
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部