Capturar Pantalla (sin método de teclado)

Iniciado por engel lex, 8 Julio 2010, 03:32 AM

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

rob1104

Tranquilo, hiciste 4 post seguidos y estás pidiendo ayuda de manera desesperada... te pueden llamar la atención por eso.

Debes saber, que la mayoria de las veces que agregas un header externo tienes que enlazar a la libreria estatica para que funcione.

Agrega este parametro al linker de la misma forma que lo hiciste con la otra liberia:

-ljpeg

Saludos y tranquilo que la ayuda llega sola no exigas.
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.

engel lex

Sorry -.- por fastidiar... ya se que no lo hago

Gracias rob1104 si era eso... -.- despues tendré que ver como rayos soluciono si el linker fastidia mas...

po si alguien quiere el codigo, está publicado :P solo hay que cambiar

#include <jpeg\jpeglib.h> (claro asumiendo que lo consiguieron, si alguien lo necesita le puedo pasar el link de descarga)

extern "C" {
#include <jpeg\jpeglib.h>
}

al parecer esa lib tiene cabacera de c :P

eso si... el programa es un poco lento... problema que ya veré como solucionar luego
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Horricreu

#12
Mírate este enlace, es un código buenísimo de [Zero]:

http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_clsscreencapture-t279310.0.html

Saludos :P

engel lex

:o con el gdiplus.h yo como no conseguí informacion clara sobre ese, ni lo intenté...

que tal en respecto a velocidad? (el jpeglib me está dando casi 3 segundo en convertir de hbitmap a jpeg  :( :-\ y soy obsesivo con que mis programas sean rápidos :P)

Por cierto... pregunta aparte... veo que los ejecutables de c++ son pesados en disco duro (vengo de trabajar con visual)... esta aplicacion pesa ya casi 1,5mb... como se puede reducir ese peso en lo posible? y cuales son los costes de reducirlo? (es decir, si gasta mas memoria, es mas lento)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Horricreu

Cita de: engelx en  8 Julio 2010, 20:47 PM
:o con el gdiplus.h yo como no conseguí informacion clara sobre ese, ni lo intenté...

Vamos inténtalo hombre, es un método muy eficaz, bueno y sabrás otra cosa más :)

http://msdn.microsoft.com/en-us/library/ms533969.aspx

Saludos :P

rob1104

CitarPor cierto... pregunta aparte... veo que los ejecutables de c++ son pesados en disco duro (vengo de trabajar con visual)... esta aplicacion pesa ya casi 1,5mb... como se puede reducir ese peso en lo posible? y cuales son los costes de reducirlo? (es decir, si gasta mas memoria, es mas lento)

Read more: http://foro.elhacker.net/programacion_cc/capturar_pantalla_sin_metodo_de_teclado-t299001.0.html#ixzz0t7YKMt3n
Seguro tienes el compilador en modo 'debug', cambialo a modo 'release' y veras la diferencia en peso.

Saludos
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.

engel lex

#16
no se que pasa... con la librería gdiplus (la descargué de codeguru porque aparentemente devc++ no la trae, pero me causa como mil problemas con cada una de las librerías... creo que deben estar malas, porque conseguí una GdiplusEnums.h y resolvió (aparentemente) los problemas con esa librería... pero aun tengo problemas con el resto...  en la pagina de MS solo me dan  la .dll y otra que conseguí, me dá el mismo problema que con la primera que descargué... algún link de ayuda?? en google no consigo nada que me sirva  :-\


Debe haber modos de codificar rápido... paint lo hace en una fracción de segundo... en comparación a los casi 5 segundos que tardo jpeglib


Actualizacion...

Me rendí con la GDI... ninguno de los ejemplos me corre y no logro resolver nada contra el linker... así que me dediqué analizar porque la jpeglib era lenta... y no es la jpeglib... es la manera de pasarle los datos...

GetPixel(hDCmem, px, py);

este comando está durando mucho mas de lo que me gustaria... así que, si alguien conoce algún simil, u otros metodos que hagan lo mismo me serian util



Actualizaciion 2...

Para los que les parezca interesante el tema... conseguí un modo de hacerla mucho mas rapido... en menos de medio segundo, y es este metodo


int datasize = Cx*Cy;
COLORREF* lpClrData = (COLORREF*)LocalAlloc(LPTR, datasize * sizeof(COLORREF));
DWORD ds = GetBitmapBits(Hbmp, datasize * sizeof(COLORREF), lpClrData);

eso para pasarlo a memoria y para leerlo


pixel = lpClrData[100*Cx+100];


lo que hace es tornarlo practicamente un apuntador y sacarlo directo de memoria sin muchas conversiones ni nada, para recorrer la imagen... y es compatible con los metodos de color que venia usando el algoritmo


El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.