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

Скриншот - C++

Восстановить пароль Регистрация
 
HardMorg
2 / 25 / 3
Регистрация: 29.08.2010
Сообщений: 204
01.07.2013, 17:55     Скриншот #1
с помощью какой библиотеке можно сделать скриншот экрана?
я так предполагаю нужно в сторону winapi ? но куда именно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2013, 17:55     Скриншот
Посмотрите здесь:

Клиент-сервер , скриншот C++
C++ Скриншот программно.
Скриншот окна программы C++
C++ Скриншот, работа с bmp
C++ Скриншот экрана
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nxtech
77 / 59 / 2
Регистрация: 26.06.2013
Сообщений: 198
01.07.2013, 18:05     Скриншот #2
GDI+ можно курить
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
01.07.2013, 18:55     Скриншот #3
Код не мой.
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
47
#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;
}
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
01.07.2013, 19:04     Скриншот #4
смотри архив , там программа делает скрины и экрана и окна и ещё много чего , возьмёш себе нужные функции.
Вложения
Тип файла: rar ScreenToAll.rar (14.5 Кб, 65 просмотров)
Убежденный
Системный программист
 Аватар для Убежденный
14180 / 6195 / 984
Регистрация: 02.05.2013
Сообщений: 10,314
Завершенные тесты: 1
01.07.2013, 20:06     Скриншот #5
HardMorg, посмотрите вот эту тему: Как создать скриншот части экрана?
Yandex
Объявления
01.07.2013, 20:06     Скриншот
Ответ Создать тему
Опции темы

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