ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Windows下截屏

Windows下截屏

原创 Linux操作系统 作者:MagicProgram 时间:2012-04-23 13:47:06 0 删除 编辑
在Windows下对屏幕进行截屏。

原理:使用BitBlt函数进行截屏操作。

代码:
HWND hwnd = ::GetDesktopWindow();   
HDC hdc = GetWindowDC(NULL);   
int x = GetDeviceCaps(hdc, HORZRES);   
int y = GetDeviceCaps(hdc, VERTRES);   
HBITMAP hbmp = ::CreateCompatibleBitmap(hdc, x, y), hold; 
HDC hmemdc = ::CreateCompatibleDC(hdc);   
hold = (HBITMAP)::SelectObject(hmemdc,   hbmp);   
BitBlt(hmemdc, 0, 0, x, y, hdc, 0, 0, SRCCOPY); 
SelectObject(hmemdc, hold);   
Bitmap bit(hbmp, NULL);

分析:
通过以上代码,可以将桌面像素都捕捉到Bitmap中,之后再对该对象进行操作。目前在PC机上测试(E5400 Dual-Core 2.7GHz),捕捉一张1024*768的桌面图像,平均需要47ms,捕捉一张800*600的桌面图像,平均需要16ms。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25432352/viewspace-722029/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Android下截屏
请登录后发表评论 登录
全部评论

注册时间:2011-02-24

  • 博文量
    29
  • 访问量
    120522