110,535
社区成员
发帖
与我相关
我的任务
分享
public static Bitmap CaptureDesktop()
{
Rect rect = new Rect();
rect.Width = Screen.PrimaryScreen.Bounds.Width;
rect.Height = Screen.PrimaryScreen.Bounds.Height;
IntPtr dcTmp = CreateDC("DISPLAY", "DISPLAY", (IntPtr)null, (IntPtr)null);
Graphics gScreen = Graphics.FromHdc(dcTmp);
Bitmap image = new Bitmap((int)(rect.Width), (int)(rect.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics gImage = Graphics.FromImage(image);
IntPtr dcImage = gImage.GetHdc();
IntPtr dcScreen = gScreen.GetHdc();
BitBlt(dcImage, 0, 0, (int)(rect.Width), (int)(rect.Height), dcScreen, (int)(rect.Left), (int)(rect.Top), TernaryRasterOperations.SRCCOPY);
gScreen.ReleaseHdc(dcScreen);
gImage.ReleaseHdc(dcImage);
ReleaseDC(IntPtr.Zero, dcTmp);
return image;
}