Форум программистов, компьютерный форум CyberForum.ru

Изображение с монитора - C++

Восстановить пароль Регистрация
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
27.06.2013, 19:46     Изображение с монитора #1
Возможно я ошибаюсь, но изображение с монитора хранится где-то в памяти? Так вот вопросы:
1) В каком диапазоне адресов хранится изображение?
2) Можно ли эти данные скопировать в файл?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2013, 19:46     Изображение с монитора
Посмотрите здесь:

C++ Изменение разрешения монитора
C++ Определить цвет пиксела в произвольной точке монитора
C++ Как узнать разрешение монитора?
Сканирование экрана монитора C++
C++ разрешение монитора
C++ Написать программу, имитирующую снегопад на экране монитора
C++ Программа которая будет считывать информацию с монитора
Вывести множество цифр, входящих в изображение числа N, которые не входят в изображение числа M C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
27.06.2013, 21:24     Изображение с монитора #2
Скриншот экрана

Вот нашел код. Писал не я.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <windows.h>
#include <stdio.h>
#include <iostream>
 
#include <gdiplus.h>
 
using namespace std;
 
#pragma comment(lib, "GdiPlus.lib") /* наш многострадальный lib-файл */
using namespace Gdiplus; /* как хочешь, но мне не в кайф постоянно писать 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;
    // Получаем HDC рабочего стола
    // Параметр HWND для рабочего стола всегда равен нулю.
    scrdc = GetDC(0);
    // Определяем разрешение экрана
    int Height, Width;
    Height = GetSystemMetrics(SM_CYSCREEN);
    Width = GetSystemMetrics(SM_CXSCREEN);
    // Создаем новый DC, идентичный десктоповскому и битмап размером с экран.
    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;
}
Yandex
Объявления
27.06.2013, 21:24     Изображение с монитора
Ответ Создать тему
Опции темы

Текущее время: 07:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru