Скриншот работающего окна - C#
Формулировка задачи:
помогите, надо сделать скриншот работающего окна, делаю так:
везде в поисковиках такой только вариант нашел, но он не так делает, он копирует весь экран за исключением панели задач, а мне нужно только активное окно, как это сделать?
var area = Screen.PrimaryScreen.WorkingArea; var screenshot = new Bitmap(area.Width, area.Height); var g = Graphics.FromImage(screenshot); g.CopyFromScreen(area.X, area.Y, 0, 0, area.Size);
Решение задачи: «Скриншот работающего окна»
textual
Листинг программы
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int Left, Top, Right, Bottom;
}
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
....
RECT area;
GetWindowRect(GetForegroundWindow(), out area);
var screenshot = new Bitmap(area.Right - area.Left, area.Bottom - area.Top);
using(var g = Graphics.FromImage(screenshot))
g.CopyFromScreen(area.Left, area.Top, 0, 0, screenshot.Size);