comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Captura de pantalla

  • 0 Respuestas
  • 1649 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5380
  • Actividad:
    75%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Mayo 22, 2011, 09:48:48 pm »
/*
CAPTURA PANTALLA
Programado por XpyXt
web: No tienes permisos para ver links. Registrate o Entra con tu cuenta
mail: xpyxt@xpyxt.no-ip.org


Licencia de implementacion: publico este source bajo GPL, es decir, si tu
usas este codigo fuente en algun programa deberas publicar su source. Como
me entere de que lo has usado y no has publicado el codigo fuente voy a tu
casa y te amputo las manos. ¿Entendido?

Explicacion y modo de uso: Este source nos captura la pantalla del windows,
Hay 3 arrays de datos, 2 cabeceras del BMP y el RAW del bmp.


array CBA1 &bfh, Tamaño de la CBA1 sizeof(bfh)
array CBA2 &bmi.bmiHeader, Tamaño de la CBA2 sizeof(BITMAPINFOHEADER)
array (char *)pbBits, Tamaño del RAW bmi.bmiHeader.biSizeImage



Código: C
  1. */
  2.  
  3. //#define WINVER 0x501
  4. //#define WINVER 0x400
  5.  
  6. #include <windows.h>
  7. #include <stdio.h>
  8. #include <wingdi.h>
  9.  
  10.  
  11.  
  12.  
  13. void cap();
  14. int main()
  15. {
  16. cap();
  17. return 0;
  18. }
  19.  
  20.  
  21. void cap()
  22. {
  23.  
  24. BITMAPINFO bmi;
  25. BITMAPFILEHEADER bfh;
  26.  
  27.  
  28. int nWidth;
  29. int nHeight;
  30.  
  31. HWND hWnd;
  32. HDC hdc ;
  33. HDC memDC;
  34. HBITMAP hbm ;
  35. HBITMAP hbmOld;
  36. BYTE *pbBits;
  37.  
  38.  
  39. HANDLE hfile;
  40. DWORD dwWritten;
  41.  
  42. nWidth = GetSystemMetrics(SM_CXSCREEN);
  43. nHeight = GetSystemMetrics(SM_CYSCREEN);
  44.  
  45. hWnd = GetDesktopWindow();
  46. hdc = GetDC(hWnd);
  47. memDC = CreateCompatibleDC(hdc);
  48. hbm = CreateCompatibleBitmap(hdc, nWidth, nHeight);
  49. hbmOld = (HBITMAP)SelectObject(memDC, hbm);
  50.  
  51. BitBlt(memDC, 0, 0, nWidth, nHeight, hdc, 0, 0, SRCCOPY);
  52.  
  53.  
  54.  
  55. ZeroMemory(&bmi, sizeof(bmi));
  56.  
  57. bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
  58. bmi.bmiHeader.biWidth = nWidth;
  59. bmi.bmiHeader.biHeight = nHeight;
  60. bmi.bmiHeader.biBitCount = 24;
  61. bmi.bmiHeader.biPlanes = 1;
  62. bmi.bmiHeader.biCompression = BI_RGB;
  63. bmi.bmiHeader.biSizeImage = 32 * nWidth * nHeight / 8;
  64.  
  65.  
  66. pbBits = (byte *) No tienes permisos para ver links. Registrate o Entra con tu cuenta(bmi.bmiHeader.biSizeImage); ;
  67.  
  68.  
  69.  
  70. GetDIBits( memDC,
  71. hbm,
  72. 0,
  73. bmi.bmiHeader.biHeight,
  74. pbBits,
  75. &bmi,
  76. DIB_RGB_COLORS );
  77.  
  78.  
  79.  
  80.  
  81.  
  82. bfh.bfType = ('M' << 8) + 'B';
  83. bfh.bfSize = sizeof(BITMAPFILEHEADER) +
  84. bmi.bmiHeader.biSizeImage +
  85. sizeof(BITMAPINFOHEADER);
  86. bfh.bfReserved1 = 0;
  87. bfh.bfReserved2 = 0;
  88. bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
  89.  
  90.  
  91.  
  92. //(char *)pbBits // string de datos imagen sin cabezeras
  93.  
  94.  
  95.  
  96. // por si lo quieres guadar en el fichero.
  97. hfile = CreateFile( ("c:\\screenXXX.bmp"),
  98. GENERIC_WRITE,
  99. 0,
  100. 0,
  101. OPEN_ALWAYS,
  102. 0,
  103. 0 );
  104.  
  105.  
  106.  
  107. WriteFile(hfile,&bfh, sizeof(bfh), &dwWritten, NULL);
  108. WriteFile(hfile,&bmi.bmiHeader, sizeof(BITMAPINFOHEADER), &dwWritten, NULL);
  109. WriteFile(hfile,pbBits, bmi.bmiHeader.biSizeImage, &dwWritten, NULL);
  110.  
  111.  
  112. CloseHandle(hfile);
  113.  
  114.  
  115. SelectObject(memDC, hbmOld);
  116. DeleteDC(memDC);
  117. ReleaseDC(hWnd,hdc);
  118. DeleteObject(hbm);
  119.  
  120. No tienes permisos para ver links. Registrate o Entra con tu cuenta(pbBits);
  121.  
  122.  
  123. }
« Última modificación: Febrero 08, 2014, 06:08:22 pm por Expermicid »


 

¿Te gustó el post? COMPARTILO!



[Source C++] Visualizando en pantalla lo que envia el microcontrolador(PIC).

Iniciado por Turka

Respuestas: 2
Vistas: 1896
Último mensaje Diciembre 03, 2012, 09:06:34 am
por Sanko
Obtener resolucion de pantalla [C/C++]

Iniciado por Expermicid

Respuestas: 0
Vistas: 3441
Último mensaje Enero 17, 2013, 01:48:47 pm
por Expermicid
Captura de pantalla (Zonas determinadas)

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1381
Último mensaje Mayo 22, 2011, 09:47:37 pm
por ANTRAX