其他分享
首页 > 其他分享> > 关于屏幕截取

关于屏幕截取

作者:互联网

有时候需要将一个补挡住或者隐藏的窗口实时截取出窗口状态

常用的bitblt()

可以将源设备区域像素拷贝到目标区域,而在窗口挡住或者隐藏的情况下就无能为力了

这个时候可以用PrintWindow,不论是窗口被隐藏,或者被挡住都能截出想要的区域

 

    IntPtr hscrdc = GetWindowDC(hWnd);
              Control control = Control.FromHandle(hWnd);
              IntPtr hbitmap = CreateCompatibleBitmap(hscrdc, control.Width, control.Height);
              IntPtr hmemdc = CreateCompatibleDC(hscrdc);
              SelectObject(hmemdc, hbitmap);
              bool re= PrintWindow(hWnd, hmemdc, 0);
              Bitmap bmp = null;
              if(re)
              {
                 bmp = Bitmap.FromHbitmap(hbitmap);                  
              }

标签:control,IntPtr,hmemdc,hWnd,截取,hscrdc,关于,hbitmap,屏幕
来源: https://www.cnblogs.com/ice-arrow/p/11981046.html