elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Screenshots
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Screenshots  (Leído 1,764 veces)
gonzaloi

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Screenshots
« en: 13 Mayo 2011, 01:57 am »

Hola !!

Alguien sabe si con GTK se puede hacer capturas de pantalla ?? Pero no de una ventana especifica, sino de lo que esta viendo el usuario.

Sino se puede...alguien me recomienda alguna libreria (multiplataforma) para hacer screenshots ??

Gracias !!


En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Screenshots
« Respuesta #1 en: 11 Julio 2011, 12:45 pm »

Estoy buscando lo mismo un screenshoot para la pantalla específica, aunque soy novato y no se como aplicar el código a mi proyecto aún xD, al menos ya he empezado a buscar los códigos que voy a necesitar y guardarmelos para el futuro...

Espero que esto te sirva, guarda un bmp de la pantalla (Y si es dualscreen también)





jueves 26 de mayo de 2011
Capturar pantalla en c
Publicado por DavidXL a las 21:47 0 comentarios Etiquetas: C / C++

Ayer busque como hacer capturas de pantalla en C y guardarlas después en un archivo bmp, pero todos los snippets que encontré me hacían únicamente un "Screenshot" de la pantalla principal, esto quiere decir que si usamos mas de un monitor no serviría. He escrito este código que captura el área del escritorio virtual (todas las pantallas), generando una imagen como la de la tecla ImprimirPantalla o PrintScreen.
No creo que ha falta decirlo pero por si acaso, para elegir donde guardar el archivo bmp se modifica en la linea 24..


Código
  1. #include <windows.h>
  2.  
  3. int main()
  4. {
  5.    int width = GetSystemMetrics(SM_CXVIRTUALSCREEN);
  6.    int height = GetSystemMetrics(SM_CYVIRTUALSCREEN);
  7.    int top = GetSystemMetrics(SM_YVIRTUALSCREEN);
  8.    int left = GetSystemMetrics(SM_XVIRTUALSCREEN);
  9.    int size = width * height * 3;
  10.    int headerSize = sizeof(BITMAPINFOHEADER) + sizeof(BITMAPFILEHEADER);
  11.  
  12.    BITMAPFILEHEADER bmFile = {0x4D42, headerSize + size, 0, 0, headerSize};
  13.    BITMAPINFO bmInfo = {{sizeof(BITMAPINFOHEADER), width, height, 1, 24, BI_RGB,
  14.                        size, 0, 0, 0, 0}};
  15.    LPBYTE pixels;
  16.  
  17.    HDC hdc = CreateCompatibleDC(0);
  18.    HBITMAP hBMP = CreateDIBSection(hdc, &bmInfo, DIB_RGB_COLORS, (LPVOID*)&pixels,
  19.                   0, 0);
  20.    SelectObject(hdc, hBMP);
  21.    BitBlt(hdc, 0, 0, width, height, GetDC(0), left, top, SRCCOPY);
  22.    DeleteDC(hdc);
  23.  
  24.    HANDLE hFile = CreateFile("c:\\Screenshot.bmp", FILE_WRITE_DATA, 0, 0,
  25.                   CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
  26.    if (hFile != INVALID_HANDLE_VALUE)
  27.    {
  28.        DWORD dwOut;
  29.        WriteFile(hFile,&bmFile, sizeof(BITMAPFILEHEADER), &dwOut, NULL);
  30.        WriteFile(hFile,&bmInfo, sizeof(BITMAPINFOHEADER), &dwOut, NULL);
  31.        WriteFile(hFile, pixels, size, &dwOut, NULL);
  32.        CloseHandle(hFile);
  33.    }
  34.  
  35.    DeleteObject(hBMP);
  36.  
  37.    return 0;
  38. }


« Última modificación: 11 Julio 2011, 12:47 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ScreenShots Curiosos
Juegos y Consolas
Alberto Navarro 8 2,380 Último mensaje 5 Noviembre 2006, 13:13 pm
por SirLanceCC
¿Screenshots?
Multimedia
Rose of Pain 1 1,621 Último mensaje 7 Marzo 2007, 21:09 pm
por Songoku
Windows 8 - Screenshots
Foro Libre
[D4N93R] 4 2,435 Último mensaje 1 Abril 2011, 14:19 pm
por [u]nsigned
[Source] Screenshots website
Programación Visual Basic
LeandroA 3 2,004 Último mensaje 26 Abril 2013, 23:33 pm
por Danyfirex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines