Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: patilanz en 17 Enero 2015, 17:17 pm



Título: Operacion con bytes -> KBDLLHOOKSTRUCT flags
Publicado por: patilanz en 17 Enero 2015, 17:17 pm
Hola estoy intentando capturar combinaciones de teclas con un hook en windows y me pasa esto:

Código
  1. KBDLLHOOKSTRUCT *data = (KBDLLHOOKSTRUCT*)lparam;
  2. int i = 1 << data->flags;
si pulso Alt Gr i contiene 2 y data->flags 129

Pero luego aquí
Código
  1. KBDLLHOOKSTRUCT *data = (KBDLLHOOKSTRUCT*)lparam;
  2. int i = 1 << 129;

i contiene 0  :(
data->flags es un DWORD (unsinged long) por esto probe hacer una conversión aunque creo que da igual.

Código
  1. KBDLLHOOKSTRUCT *data = (KBDLLHOOKSTRUCT*)lparam;
  2. int i = 1 << (DWORD)129;
El i sigue 0.

Porque pasa esto?

Saludos


Título: Re: Operacion con bytes -> KBDLLHOOKSTRUCT flags
Publicado por: ivancea96 en 17 Enero 2015, 19:44 pm
estás desplazando 129 veces 1 a la izquierda. ¿Es eso lo que quieres hacer? ¿No será al revés?


Título: Re: Operacion con bytes -> KBDLLHOOKSTRUCT flags
Publicado por: patilanz en 17 Enero 2015, 21:09 pm
En realidad lo que quiero es comprobar si esta activo el 5 byte que ya lo hice de otra forma pero el problema esta en que el i es diferente dependiendo si uso data->flags que vale 129 y lo pongo como constante y no se porque.


Título: Re: Operacion con bytes -> KBDLLHOOKSTRUCT flags
Publicado por: xv0 en 17 Enero 2015, 22:03 pm
Porque pasa esto?

Un int (Dword) son 4 bytes - 32 bits, y tu estas moviendo a la izquierda 129, como veras eso se pasa de los 32 asi que todo sera 0.

Igualmente no se a que viene lo del byte numero 5, si estas con un int, si quires comparar bytes siempre tienes AND.

Un saludo.



Título: Re: Operacion con bytes -> KBDLLHOOKSTRUCT flags
Publicado por: patilanz en 17 Enero 2015, 22:30 pm
Luego lo hice con AND pero quería probar otra cosa que no tiene relación.

Citar
Un int (Dword) son 4 bytes - 32 bits, y tu estas moviendo a la izquierda 129, como veras eso se pasa de los 32 asi que todo sera 0.

Vale y porque si utilizo para mover el contenido data->flags que en el debugger de pone que vale 129 me devuelve 2 ?


Título: Re: Operacion con bytes -> KBDLLHOOKSTRUCT flags
Publicado por: xv0 en 17 Enero 2015, 23:16 pm
Como quieres que sepa lo que hace el debugger si no lo veo?

Un saludo.