Здравствуйте.
Мне необходимо сделать скриншот в хендле окна по указанным координатам(само окно может быть свернуто)
У меня есть более менее рабочий пример, но в нужной для меня игре(GTA 5) он делает скриншот просто черного квадрата.
Вот мой нынешний код:
public static void CaptureWindow(int posX, int posY, int wWidth, int wHeight)
{
RECT rect;
GetWindowRect(hWnd, out rect);
using (var image = new Bitmap(rect.Right - rect.Left, rect.Bottom - rect.Top))
{
using (var graphics = Graphics.FromImage(image))
{
var hdcBitmap = graphics.GetHdc();
PrintWindow(hWnd, hdcBitmap, 0);
graphics.ReleaseHdc(hdcBitmap);
}
var newImage = new Bitmap(wWidth, wHeight);
int newY = -1;
int newX = -1;
for (int y = posY; y < posY + wHeight; y++)
{
newY++;
for (int x = posX; x < posX + wWidth; x++)
{
newX++;
newImage.SetPixel(newX, newY, image.GetPixel(x, y));
if (newX == wWidth - 1)
{
newX = -1;
}
}
}
image.Save("Example1.jpg");
newImage.Save("Example.jpg");
}
}
А вот такой скриншот сохраняет из GTA 5(