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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 ... 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 [1749] 1750
17481  Programación / Programación C/C++ / Re: Capturar Pantalla (sin método de teclado) en: 8 Julio 2010, 04:22 am
Exactamente el mismo error  :-\
el linker echando broma
17482  Programación / Programación C/C++ / Re: Capturar Pantalla (sin método de teclado) en: 8 Julio 2010, 04:09 am
Wow la recopilacion de codigos está buena, luego revisaré los otros... pero sigo estancado en el mismo... tengo estos problemas:

Citar
 [Linker error] undefined reference to `GetObjectA@12'
 C:\Users\Engel\AppData\Local\Temp\cccpbaaa.o(.text+0x2a8) In function `Z10SaveBitmapPcP13tagBITMAPINFOP9HBITMAP(HDC__ *)':
  [Linker error] undefined reference to `GetDIBits@28'
 C:\Users\Engel\AppData\Local\Temp\cccpbaaa.o(.text+0x47a) In function `Z15CapturaPantallajjjjPc':
  [Linker error] undefined reference to `CreateCompatibleDC@4'
  [Linker error] undefined reference to `CreateCompatibleBitmap@12'
  [Linker error] undefined reference to `SelectObject@8'
  [Linker error] undefined reference to `BitBlt@36'
  [Linker error] undefined reference to `StretchBlt@44'
  [Linker error] undefined reference to `SelectObject@8'
  [Linker error] undefined reference to `GetBitmapBits@12'
  [Linker error] undefined reference to `CreateCompatibleBitmap@12'
  [Linker error] undefined reference to `SetBitmapBits@12'
  [Linker error] undefined reference to `DeleteDC@4'
  [Linker error] undefined reference to `DeleteObject@4'
 C:\Users\Engel\AppData\Local\Temp\cccpbaaa.o(.text+0x47a) ld returned 1 exit status


y hasta ahí llegó mi nivel en C++  :-\
como resuelvo con el linker esos errores? al parecer a todo el mundo le sale genialmente el código menos a mi... a continuación están los códigos usados

HELP!!! :huh:



Código:
#include <iostream>
#include <cstdlib>
#include "shot.h"

using namespace std;

int main(/*int argc, char *argv[]*/)
{
    int x = GetSystemMetrics(SM_CXSCREEN);
    int y = GetSystemMetrics(SM_CYSCREEN);

            CapturaPantalla(0,0,x,y,"D:\\hola.bmp");



    system("PAUSE");
    return EXIT_SUCCESS;
}

y mi shot.h es

Código:
#include <windows.h>

PBITMAPINFO CreateBitmapInfoStructure(HBITMAP hBmp)
{
BITMAP bmp;
PBITMAPINFO pbmi;
WORD cClrBits;

//obtiene la altura, anchura, y profundidad del color de la imagen
if(!GetObject(hBmp,sizeof(BITMAP),(LPSTR)&bmp))return NULL;

cClrBits = 24;

/*
reserva la memoria para la estructura PBITMAPINFO, que contendrá la informacion
de la cabecera
*/
if(cClrBits!=24)
pbmi=(PBITMAPINFO)LocalAlloc(LPTR,sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*(1<<cClrBits));
else
pbmi=(PBITMAPINFO)LocalAlloc(LPTR,sizeof(BITMAPINFOHEADER));

//inicializa la estructura
pbmi->bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
pbmi->bmiHeader.biWidth = bmp.bmWidth;
pbmi->bmiHeader.biHeight = bmp.bmHeight;
pbmi->bmiHeader.biPlanes = bmp.bmPlanes;
pbmi->bmiHeader.biBitCount = 24;

if(cClrBits<24)pbmi->bmiHeader.biClrUsed=(1<<cClrBits);

pbmi->bmiHeader.biCompression = BI_RGB;
pbmi->bmiHeader.biSizeImage=(pbmi->bmiHeader.biWidth+7)/8*pbmi->bmiHeader.biHeight*cClrBits;
pbmi->bmiHeader.biClrImportant = 0;

return pbmi;
}

HRESULT SaveBitmap(char strFileName[128],PBITMAPINFO pbi,HBITMAP hBMP,HDC hDC)
{
HRESULT hr = E_FAIL;
HANDLE hf; // file handle
BITMAPFILEHEADER hdr; // bitmap file-header
PBITMAPINFOHEADER pbih; // bitmap info-header
LPBYTE lpBits; // memorypointer
DWORD dwTotal; // total count of bytes
DWORD cb; // incremental count of bytes
BYTE *hp; // byte pointer
DWORD dwTmp; // temp-variable


if(pbi==NULL)return E_FAIL;

pbih=(PBITMAPINFOHEADER)pbi;
lpBits=(LPBYTE)GlobalAlloc(GMEM_FIXED,pbih->biSizeImage);

if(!lpBits)return E_FAIL;

if(!GetDIBits(hDC,hBMP,0,(WORD)pbih->biHeight,lpBits,pbi,DIB_RGB_COLORS))return E_FAIL;

//crea el .bmp
hf=CreateFile(strFileName,GENERIC_READ|GENERIC_WRITE,(DWORD)0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL);

if(hf==INVALID_HANDLE_VALUE)return E_FAIL;

hdr.bfType = 0x4D42; // 0x42 = "B", 0x4D = "M"


hdr.bfSize=(DWORD)(sizeof(BITMAPFILEHEADER)+pbih->biSize+pbih->biClrUsed*sizeof(RGBQUAD)+pbih->biSizeImage);
hdr.bfReserved1=0;
hdr.bfReserved2=0;

hdr.bfOffBits=(DWORD)sizeof(BITMAPFILEHEADER)+pbih->biSize+pbih->biClrUsed*sizeof(RGBQUAD);


if(!WriteFile(hf,(LPVOID)&hdr,sizeof(BITMAPFILEHEADER),(LPDWORD)&dwTmp,NULL))return E_FAIL;

if(!WriteFile(hf,(LPVOID)pbih,sizeof(BITMAPINFOHEADER)+pbih->biClrUsed*sizeof(RGBQUAD),(LPDWORD)&dwTmp,(NULL)))return E_FAIL;


dwTotal=cb=pbih->biSizeImage;
hp=lpBits;

if(!WriteFile(hf,(LPSTR)hp,(int)cb,(LPDWORD)&dwTmp,NULL))return E_FAIL;
if(!CloseHandle(hf))return E_FAIL;

GlobalFree((HGLOBAL)lpBits);

return S_OK;
}

/*
uso: CapturaPantalla(posicion_inicial_x,posicion_inicial_y,posicion_final_x,posicion_final_y);
*/

void CapturaPantalla(unsigned int Ax,unsigned int Ay,unsigned int Bx,unsigned int By,char *Ruta)
{
BYTE *mem;
int bpp,c;
    HWND HwndSrc;
    HDC HdcSrc;
    HDC HdcMemory;
    HDC HdcStrech;
    HBITMAP Hbmp;
    HBITMAP HbmpStrech;
    HBITMAP HbmpPrev;
    HBITMAP HbmpPrevStrech;
    HBITMAP BmpPrueba;

HwndSrc=GetDesktopWindow();                               //almacena el manejador del escritorio
    HdcSrc=GetWindowDC(HwndSrc);                               //se obtiene el DC del escritorio
HdcMemory=CreateCompatibleDC(HdcSrc);                      //se crea una copia del DC del escritorio
HdcStrech=CreateCompatibleDC(HdcSrc);                   //Cd que almacenara la imagen pequeña
Hbmp=CreateCompatibleBitmap(HdcSrc,1024,768);          //se cra un bitmap del DC del escritorio
HbmpStrech=CreateCompatibleBitmap(HdcSrc,Bx-Ax,By-Ay);  //bitmap que almacenara el Strech
HbmpPrev=(HBITMAP)SelectObject(HdcMemory,Hbmp);        //se asocia el bitmap con el DC
HbmpPrevStrech=(HBITMAP)SelectObject(HdcStrech,HbmpStrech);

BitBlt(HdcMemory,0,0,800,600,HdcSrc,Ax,Ay,SRCCOPY);
    StretchBlt(HdcStrech,0,0,800,600,HdcMemory,0,0,800,600,SRCCOPY);
    HbmpStrech=(HBITMAP)SelectObject(HdcStrech,HbmpPrevStrech);
    Hbmp=(HBITMAP)SelectObject(HdcMemory,HbmpPrev);

bpp=800*600*8;

c=GetBitmapBits(HbmpStrech,0,0);
mem=(BYTE*)malloc((c-1)*sizeof(BYTE*));
memset(mem,0,sizeof(mem));

    GetBitmapBits(HbmpStrech,c,mem);
BmpPrueba = CreateCompatibleBitmap(HdcSrc,Bx-Ax,By-Ay);
SetBitmapBits(BmpPrueba,c,mem);
SaveBitmap(Ruta,CreateBitmapInfoStructure(BmpPrueba),BmpPrueba,HdcSrc);

    DeleteDC(HdcSrc);
    DeleteDC(HdcMemory);
    DeleteDC(HdcStrech);
    DeleteObject(Hbmp);
    DeleteObject(HbmpPrev);
    DeleteObject(HbmpStrech);
    DeleteObject(HbmpPrevStrech);

return;
}



17483  Programación / Programación C/C++ / Capturar Pantalla (sin método de teclado) en: 8 Julio 2010, 03:32 am
Buenas, estoy migrando a c++, ya he aprendido un poco y quiero aprender a realizar la captura de pantalla, sin necesidad de simular la pulsación del botón...

Si alguien me podría ayudar, he ya buscando en el foro sobre captura de pantalla en c/c++ y no me arrojó resultados...

De antemano, se los agradezco mucho   :-\
17484  Programación / Programación Visual Basic / Re: Lineas "al aire" en: 23 Enero 2010, 01:29 am
Gracias por la ayuda a todos, el de BlackZero se apega mas a mis necesidades! :P
17485  Programación / Programación Visual Basic / Lineas "al aire" en: 22 Enero 2010, 05:26 am
Queria saber cual api o que metodo puedo usar para dibujar lineas "en el aire" es decir, fuera de la aplicación bv6, por ejemplo,que me mueva el mouse y se vaya creando una linea sobre el escritorio con todos los lugares por donde ha pasado el puntero desde que el programa esté activo... o simplemente, que me cree una linea rectade un pixel (x,y) que yo le indique a otro pixel indicado...
17486  Seguridad Informática / Desafíos - Wargames / Re: Si respondes a la pregunta correcta, piensas como un psicópata. en: 22 Enero 2010, 04:24 am
ese se lo hice a una amiga, y ella lo respondió de una sin pensarlo si quiera (no lo conocía tampoco) y luego me dijo "acaso no es obvio" en ese momento supe que nunca debía acercar armas blancas o de fuego a ella D: jejeje
17487  Programación / Programación Visual Basic / Re: Capturar pantalla o ventana en video en: 8 Enero 2010, 18:54 pm
blackzero, estás en lo cierto, pero uno de mis principales criterios de búsqueda estaba errado... el lugar, yo lo había buscado aquí en el foro, en planet source (si habian proyectos pero la gente le encanta hacer cosas de la manera las enredada) y por google, los links que ví son pura pagina spam de "compra esta programa para capturar pantalla" gracias --> shell root <-- (ups sorry)

gracias!
17488  Programación / Programación Visual Basic / Re: Capturar pantalla o ventana en video en: 8 Enero 2010, 17:32 pm
yo busqué en el foro D: (no me gusta abrir temas innecesariamente) pero no he conseguido nada (o tal vez los términos usados no han sido los correctos)
17489  Programación / Programación Visual Basic / Re: ReadProcessMemory [VB6] ??? en: 8 Enero 2010, 05:01 am
antes que te lleves un golpe contra una pared te digo que silk cada vez que lo inicias cambia las posiciones de algunos valores dentro de la memoria, especialmente los que nombraste, aunque no toda esperanza está perdida, ellos siempre se llevan una distancia fija entre ellos (alguna vez intenté tener un programa que me dijera la vida, la exp y una que otra tontería, pero el asunto difícil se me hizo agarrar las posiciones correctas(automáticamente) cada vez que se inicia el juego... y para un bot te falta algo importante... tu XYZ
17490  Programación / Programación Visual Basic / Capturar pantalla o ventana en video en: 8 Enero 2010, 04:54 am
Quiero hacer un programa para capturar la pantalla, una ventana o que se le puedan dar coordenadas para que capture un cuadro, porfa alguien me podría dar referencia de manipulación de vídeo, captura, grabación y cualquier tip util?

hasta ahora solo he hecho programa para capturar pantallas como una imagen, pero no se como manipular vídeo como tal
Páginas: 1 ... 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 [1749] 1750
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines