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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 [1748] 1749 1750
17471  Programación / Desarrollo Web / jQuery y pequeño conflicto de metodo que no corre -.- en: 27 Julio 2010, 09:29 am
Buenas  :D estoy trabajando ahorita web, estoy creando paginas basicas y todo esto y me topé con jQuery hace unos dias... mi asunto está en que quiero hacer un input de texto simple, que cuando tome foco borre su contenido y lo debe en blanco (si el contenido es X) o que al perder foco (si el contenido es vacio) escriba X

estoy conla idea principal aun... y no me funciona ni si quiera lo basico -.- no entiendo por que... no comprendo el error si derepente escribo un codigo y el script y todo cool de repente modifico una tonteria y todo se peta -.-

he aqui mi codigo... (si me pueden dar infor de donde estudiar jQuery muchas grax)

de antemano, si, las rutas están bien -.-

test.html
Código:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ooo</title>
<script language="javascript" src="include/js_functions/manejo_texto.js"></script>
<script language="javascript" src="include/jquery.js"></script>
</head>
<body>
<form name="form" method="post" action="o.php">

    <input name="nombre" type="text" id="nombre" size="20" maxlength="20" value="Ingrese su nombre" >        

</form>
</body>
</html>

manejo_texto.js
Código:
var x;
x=$(document);
x.ready(inicializa);

function inicializa()
{
  var x;
  x=$('#nombre');
  x.focus(tomaFoco);
}

function tomaFoco()
{
var x;
x=$('#nombre');
x.attr("value","");
}


--------------------actualizacion------------------------
A MazarD:
el codigo que posteaste en plano, tampoco me corre :s mi codigo no es muy diferente, lo que pasa es que en tu caso estás haciendo directo todo y usando funciones anonimas...
en la forma que lo uso, se ve diferente porque todo está definido por partes y no se vé tan churrero... :s aun no he revisado las paginas... pero revisaré y luego aviso
17472  Comunicaciones / Redes / Re: Help! no hayo como pasar datos en: 18 Julio 2010, 00:59 am
Inicialmente no lo hice en ese tema, porque aunque es referente pensé que mi pregunta era muy vaga como para meterlo en redes
Pd: ya le envie un mp al mod
17473  Comunicaciones / Redes / Help! no hayo como pasar datos en: 17 Julio 2010, 06:04 am
Tengo un router nexxt wireless... el hecho es que sin importar los que he hecho (port forwarding, virtual server, dmz... ya no se ni que inventarme) no logro abrir puertos, ni para acceso ftp, no nada, aparente mente para la salida de datos... para el ingreso (hasta ahora) nunca he tenido problemas... cuando intento ingresar al ftp, el log del ftp, es que sí recivió un intento de conexión.... peor no pasan mas datos... por controles winsock, lo mismo, el winsock recive la peticion de conexión.... pero mas ningun dato... todos los programas que he probado, los he probado por loop interno (127.0.0.1) por ip interna (192.168.1.102) y la conexión y transmision de datos es perfecta... el problema es cuando intento pasar a travez de mi ip externa..


algunos programas han logrado pasar datos de entrada y salida de manera perfecta, juegos, un programa de administracion remota (solo cuando yo tengo el cliente, si tengo el server, no se comunica), entre otros... que puede ser?

el firewall de router está desactivado... (o por lo menos eso dice el) y el de mi computadora por razones experimentales, también... como ya dije, por experimentos me doy cuenta que el problema es cuando intento pasar a traves de mi router,,,
17474  Programación / Programación C/C++ / .bmp a .jpeg con GDIPlus en: 11 Julio 2010, 00:36 am
Estoy peleando con la conversion a jpeg con GDI+... primero, simplemente los .h que conseguian, me daban varios cientos de errores (literalmente) ya conseguí unas que no me dán errores... estoy tratando de reproducir un codigo que conseguí aqui

Citar

estoy trabajando con dev c++

actualmente mis problemas son del linker, no se que mas agregar... agregué -lgdiplus (en realidad lo puse tratando de adivinarlo por obviacion así que ni sé si estará bien) y me resolvió aproximadamente la mitad de los errores del linker...

Código:
C:\Dev-Cpp\include\GDI\Gdiplus.h:52,               from C:\Dev-Cpp\include\ShotHZero.h In file included from C:/Dev-Cpp/include/GDI/Gdiplus.h:52,               from C:/Dev-Cpp/include/ShotHZero.h

C:\Dev-Cpp\include\ShotHZero.h:14,               from C:\Users\Engel\Desktop\cpp\pantallaHZ.cpp                  from C:/Dev-Cpp/include/ShotHZero.h:14,               from C:\Users\Engel\Desktop\cpp\pantallaHZ.cpp

C:\Dev-Cpp\include\GDI\GdiplusImageAttributes.h In member function `Gdiplus::Status Gdiplus::ImageAttributes::ClearColorKey(Gdiplus::ColorAdjustType)':

C:\Dev-Cpp\include\GDI\GdiplusImageAttributes.h [Warning] passing NULL used for non-pointer converting 4 of `Gdiplus::GpStatus Gdiplus::DllExports::GdipSetImageAttributesColorKeys(Gdiplus::GpImageAttributes*, Gdiplus::ColorAdjustType, BOOL, Gdiplus::ARGB, Gdiplus::ARGB)'

C:\Dev-Cpp\include\GDI\GdiplusImageAttributes.h [Warning] passing NULL used for non-pointer converting 5 of `Gdiplus::GpStatus Gdiplus::DllExports::GdipSetImageAttributesColorKeys(Gdiplus::GpImageAttributes*, Gdiplus::ColorAdjustType, BOOL, Gdiplus::ARGB, Gdiplus::ARGB)'

[Linker error] undefined reference to `CreateStreamOnHGlobal@12'
[Linker error] undefined reference to `EncoderQuality'
[Linker error] undefined reference to `EncoderQuality'
[Linker error] undefined reference to `EncoderQuality'
[Linker error] undefined reference to `EncoderQuality'
C:\Dev-Cpp\include\GDI\GdiplusImageAttributes.h ld returned 1 exit status

aun no entiendo bien los problemas del linker ni muy bien los de c++... los 2 problemas previos al linker parecen ser de poca importancia
(corrí un ejemplo de la msdn con GDI bastante simple y corrió bien aun cuando presentó esos 2 problemas)

pero ya no se que hacer... he intentado cualquier cosa... pero por mi poco conocimiento, no seria mas que intentar programar usando magia vudú
17475  Seguridad Informática / Análisis y Diseño de Malware / Re: [SRC][C++] ClsScreenCapture en: 10 Julio 2010, 23:11 pm
Disculpen por revivir el tema... pero intento usar el codigo, y el gdipluh.h me dá miles de errores junto con el resto de sus librerias... no sé si fue mi fuente de descargar que está mal o que... ya que lo descargué por lo menos de 4 sitios diferentes... y no consigo lograr que funciones
17476  Programación / Programación C/C++ / Re: Capturar Pantalla (sin método de teclado) en: 9 Julio 2010, 05:04 am
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...

Código:
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

Código:
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

Código:
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


17477  Programación / Programación C/C++ / Re: Capturar Pantalla (sin método de teclado) en: 8 Julio 2010, 20:47 pm
: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)
17478  Programación / Programación C/C++ / Re: Capturar Pantalla (sin método de teclado) en: 8 Julio 2010, 18:03 pm
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
17479  Programación / Programación C/C++ / Re: Capturar Pantalla (sin método de teclado) en: 8 Julio 2010, 04:56 am
rob1104 wow creía que había modificado eso D: (de hecho el el main le había puesto system metrics, porque estaba para esa resolución, y pensé que había eliminado todas las instancias de esa resolución :s

Sorry  :-( tienes razón en que tal vez no me detuve mucho en el shot.h

modifico eso y otros detalles que ví, y ya posteo el codigo :P


Lh: No hagas doble post, usa el botón modificar!


He aquí el código final...

Espero no tener errores... en los comentarios que agregué si alguien ve algo incorrecto, acepto muy bien las correcciones ya que el código no entiendo del todo las implementaciones (disculpen si mi terminología no es la correcta)

El archivo con el main va así

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(200,200,500,500,"L:\\hola.bmp"); //Capturar crop xi,yi,xf,yf (xi=x inicial, yf=y final)

            //CapturaPantalla(0,0,x,y,"L:\\hola.bmp"); // para capturar pantalla completa


    //system("PAUSE");
    return EXIT_SUCCESS;
}




El shot.h es este


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;
    int Cx,Cy;
    Cx=Bx-Ax;
    Cy=By-Ay;
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,Cx,Cy);          //se cra un bitmap del DC del escritorio
//toma desde la posision 0,0 hasta x,y
HbmpStrech=CreateCompatibleBitmap(HdcSrc,Cx,Cy);  //bitmap que almacenara el Strech
//modficacion produce un aparente error de sincrinizacion (aparentemente tangencial al sumar o restar un valor)
//el error de sincronizacion es cuando disconcuerda los numeros con BmpPrueba
HbmpPrev=(HBITMAP)SelectObject(HdcMemory,Hbmp);        //se asocia el bitmap con el DC
HbmpPrevStrech=(HBITMAP)SelectObject(HdcStrech,HbmpStrech);

BitBlt(HdcMemory,0,0,Cx,Cy,HdcSrc,Ax,Ay,SRCCOPY);
//El primer par de cordenadas toma la posicion desde x,y hasta Bx,By
//el segundo par, mueve la imagen x,y posixiones hacia atras

    StretchBlt(HdcStrech,0,0,Bx,By,HdcMemory,0,0,Bx,By,SRCCOPY);
    //aparentemente hace lo mismo que el comando anterior en modificacion
   
    HbmpStrech=(HBITMAP)SelectObject(HdcStrech,HbmpPrevStrech);
    Hbmp=(HBITMAP)SelectObject(HdcMemory,HbmpPrev);

bpp=Bx*By*8; //NPI para que sirve ya que ni si quiera está implementado su uso :s
   
c=GetBitmapBits(HbmpStrech,0,0);
mem=(BYTE*)malloc((c-1)*sizeof(BYTE*));
memset(mem,0,sizeof(mem));

    GetBitmapBits(HbmpStrech,c,mem);
BmpPrueba = CreateCompatibleBitmap(HdcSrc,Cx,Cy-0);
//x,y determinan el temaño de la captura
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;
}


Mis pseudo análisis (-.- realmente mas por método de caja negra que por cualquier otro método) es en esta sección

Código:

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,Cx,Cy);          //se cra un bitmap del DC del escritorio
//toma desde la posision 0,0 hasta x,y
HbmpStrech=CreateCompatibleBitmap(HdcSrc,Cx,Cy);  //bitmap que almacenara el Strech
//modficacion produce un aparente error de sincrinizacion (aparentemente tangencial al sumar o restar un valor)
//el error de sincronizacion es cuando disconcuerda los numeros con BmpPrueba
HbmpPrev=(HBITMAP)SelectObject(HdcMemory,Hbmp);        //se asocia el bitmap con el DC
HbmpPrevStrech=(HBITMAP)SelectObject(HdcStrech,HbmpStrech);

BitBlt(HdcMemory,0,0,Cx,Cy,HdcSrc,Ax,Ay,SRCCOPY);
//El primer par de cordenadas toma la posicion desde x,y hasta Bx,By
//el segundo par, mueve la imagen x,y posixiones hacia atras

    StretchBlt(HdcStrech,0,0,Bx,By,HdcMemory,0,0,Bx,By,SRCCOPY);
    //aparentemente hace lo mismo que el comando anterior en modificacion
   
    HbmpStrech=(HBITMAP)SelectObject(HdcStrech,HbmpPrevStrech);
    Hbmp=(HBITMAP)SelectObject(HdcMemory,HbmpPrev);

bpp=Bx*By*8; //NPI para que sirve ya que ni si quiera está implementado su uso :s
   
c=GetBitmapBits(HbmpStrech,0,0);
mem=(BYTE*)malloc((c-1)*sizeof(BYTE*));
memset(mem,0,sizeof(mem));

    GetBitmapBits(HbmpStrech,c,mem);
BmpPrueba = CreateCompatibleBitmap(HdcSrc,Cx,Cy-0);
//x,y determinan el temaño de la captura
SetBitmapBits(BmpPrueba,c,mem);
SaveBitmap(Ruta,CreateBitmapInfoStructure(BmpPrueba),BmpPrueba,HdcSrc);



17480  Programación / Programación C/C++ / Re: Capturar Pantalla (sin método de teclado) en: 8 Julio 2010, 04:36 am
littlehorse, cool  ;D eso era lo que necesitaba el linker (si, es dev c++)
nicolas_cof  :D agradezco también mucho tu interés en ayudarme

pero ahora surge un nuevo problema...

 :-(

crea la imagen, pero este captura solo 800x600 y deja el resto en negro (mi pantalla es 1400x900)


si, se que estoy jodiendo mucho, para lo poco que nos conocemos... pero así iré aprendiendo  ;)
Páginas: 1 ... 1733 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