привет всем, у меня к Вам такой вот вопрос - подскажите, как написать программу, которая бы скринила экран, сохраняла его в файл - но не в текстовый а графический. И теперь самое сложное - как восстанавливать экран из сохраненного файла. С первой частью думаю проблем не будет - но вот над второй призадумался. Подскажите кто-что может.
Alastor GetDesktopWindow() /GetWindowDC() и копируете битмапу с этого контекста или на него. При первом апдейте будет стёрто. Окон то множество.
Под DOS пишете? А это ещё зачем? Оглашайте уж тогда полное ТЗ. Между прочим, для студенческих заданий у нас есть отдельная тема.
лучшей юзать CreateDC, тк десктоп на боттом левеле. все остальные его чайлды. а через CreateDC("DISPLAY", 0, 0, 0); имеем именно картинку. экзампл кода из статьи в мсдн о Код (Text): // Capturing an Image // Create a normal DC and a memory DC for the entire screen. The // normal DC provides a "snapshot" of the screen contents. The // memory DC keeps a copy of this "snapshot" in the associated // bitmap. hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL); hdcCompatible = CreateCompatibleDC(hdcScreen); // Create a compatible bitmap for hdcScreen. hbmScreen = CreateCompatibleBitmap(hdcScreen, GetDeviceCaps(hdcScreen, HORZRES), GetDeviceCaps(hdcScreen, VERTRES)); if (hbmScreen == 0) errhandler("hbmScreen", hwnd); // Select the bitmaps into the compatible DC. if (!SelectObject(hdcCompatible, hbmScreen)) errhandler("Compatible Bitmap Selection", hwnd); // Hide the application window. ShowWindow(hwnd, SW_HIDE); //Copy color data for the entire display into a //bitmap that is selected into a compatible DC. if (!BitBlt(hdcCompatible, 0,0, bmp.bmWidth, bmp.bmHeight, hdcScreen, 0,0, SRCCOPY)) errhandler("Screen to Compat Blt Failed", hwnd); // Redraw the application window. ShowWindow(hwnd, SW_SHOW); при апдейте все стерется, но можно, напр, все прикрыть топлевел окошком.