Как можно программно сделать снимок экрана и сохранить его? (C++, еще бы неплохо исходник)
Как можно программно (т. е. автономно) сделать снимок экрана и сохранить его? (C++, еще бы неплохо исходник)
Заранее спасибо!
Как можно программно (т. е. автономно) сделать снимок экрана и сохранить его? (C++, еще бы неплохо исходник)
Заранее спасибо!
#include "stdafx.h"
#include
#include
#include
#include
using namespace std;
#pragma comment(lib, "GdiPlus.lib")
using namespace Gdiplus;
static const GUID png =
{ 0x557cf406, 0x1a04, 0x11d3, { 0x9a, 0x73, 0x00, 0x00, 0xf8, 0x1e, 0xf3, 0x2e } };
int main()
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
HDC scrdc, memdc;
HBITMAP membit;
scrdc = GetDC(0);
int Height, Width;
Height = GetSystemMetrics(SM_CYSCREEN);
Width = GetSystemMetrics(SM_CXSCREEN);
memdc = CreateCompatibleDC(scrdc);
membit = CreateCompatibleBitmap(scrdc, Width, Height);
SelectObject(memdc, membit);
BitBlt(memdc, 0, 0, Width, Height, scrdc, 0, 0, SRCCOPY);
HBITMAP hBitmap;
hBitmap =(HBITMAP) SelectObject(memdc, membit);
Gdiplus::Bitmap bitmap(hBitmap, NULL);
bitmap.Save(L"c:\\screen.png", &png);
DeleteObject(hBitmap);
//GdiplusShutdown(gdiplusToken);
return 0;
}