static Bitmap CaptureFromScreen(IntPtr hwnd, WindowInfo wi)
{
using (var guard = new ForegroundWindowGuard()) {
if (guard.ForegroundWindow != hwnd)
Utils.ForceForegroundWindow(hwnd);
Bitmap windowBitmap = new Bitmap(
wi.rcWindow.right - wi.rcWindow.left,
wi.rcWindow.bottom - wi.rcWindow.top,
System.Drawing.Imaging.PixelFormat.Format32bppRgb
);
Graphics graphicsWindow = Graphics.FromImage(windowBitmap);
graphicsWindow.CopyFromScreen(
new Point(wi.rcWindow.left, wi.rcWindow.top),
Point.Empty,
windowBitmap.Size,
CopyPixelOperation.SourceCopy
);
return windowBitmap;
}
}