Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100709
  • 博文数量: 52
  • 博客积分: 2095
  • 博客等级: 大尉
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-08 13:29
文章分类

全部博文(52)

文章存档

2010年(1)

2009年(24)

2008年(27)

我的朋友

分类:

2009-11-20 00:05:49

屏幕抓取

var

    Fullscreen:TBitmap;

    FullscreenCanvas:TCanvas;

    DC:HDC;

begin

    Fullscreen:=TBitmap.Create;

    Fullscreen.Width:=screen.width;

    Fullscreen.Height:=screen.Height;

    DC:=GetDC(0);

    //取得屏幕的DC,参数0指的是屏幕

    FullscreenCanvas:=TCanvas.Create;

    //创建一个CANVAS对象

    FullscreenCanvas.Handle:=DC;

    Fullscreen.Canvas.CopyRect(Rect(0,0,screen.Width,screen.Height),

              fullscreenCanvas,Rect(0,0,Screen.Width,Screen.Height));

    //把整个屏幕复制到BITMAP中

    FullscreenCanvas.Free;

    ReleaseDC(0,DC);

    //释放DC

    Image1.Picture.Bitmap:=fullscreen;

    Image1.Width:=fullscreen.Width;

    Image1.Height:=fullscreen.Height;

    fullscreen.free;


还有学到的api函数记录
GetCursorPos(pt) ; //获取鼠标当前位置
hd := WindowFromPoint(pt); //获取某一点所在的窗口的句柄
GetClassName(hd,classname,255); //由句柄获取类名
Memo1.Lines.Add(classname);  //memo用法
if (Memo1.Lines.Count > 20) then
  Memo1.Lines.Clear;

form有clientwidth和clientheight属性,客户区大小控制使用。
注意keypress事件和keyup,keydown的参数不同,前者传的键是char型,后两个是word型。前者只接受ASCII键触发,后两个接受所有键并且对应虚拟键码(VK_XX)
阅读(538) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~