Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: patilanz en 9 Noviembre 2014, 18:23 pm



Título: SPI_GETMOUSECLICKLOCKTIME cambia con valores incorrectos
Publicado por: patilanz en 9 Noviembre 2014, 18:23 pm
Hola tengo esto:

Código
  1. bool p = true;
  2. SystemParametersInfo(SPI_SETMOUSECLICKLOCK, 0, &p, 0);
  3. DWORD speed = 1300;
  4. SystemParametersInfo(SPI_SETMOUSECLICKLOCKTIME, 0, &speed, 0);
  5. SystemParametersInfo(SPI_GETMOUSECLICKLOCKTIME, 0, &speed, 0);

Se me activa bien pero luego al intentar cambiar la velocidad con SPI_SETMOUSECLICKLOCKTIME luego al recibir la, el speed ya es un numero como 3252721060 y el mouseLock no funciona. Si lo cambio desde el panel de control funciona y consigo apagar y encender desde c++ pero no cambiar la velocidad.

Donde fallo? En Microsoft pone:

Adjusts the time delay before the primary mouse button is locked. The uiParam parameter should be set to 0. The pvParam parameter points to a DWORD that specifies the time delay in milliseconds. For example, specify 1000 for a 1 second delay. The default is 1200

Saludos


Título: Re: SPI_GETMOUSECLICKLOCKTIME cambia con valores incorrectos
Publicado por: Eternal Idol en 9 Noviembre 2014, 18:52 pm
Para SPI_SETMOUSECLICKLOCKTIME no tenes que pasar un puntero sino un valor entero tipo DWORD, castea tu variable a PVOID y listo.



Me da la impresion de que la documentacion esta mal: The pvParam parameter points to a DWORD that specifies the time delay in milliseconds.

Lo que hice fue depurar el rundll32.exe del Panel de Control, breakpoint en USER32!SystemParametersInfoW y en R8 (tercer parametro en x64) no habia ningun puntero ... aunque habia un comentario que lo advertia:

pvParam for SPI_SETMOUSECLICKLOCKTIME
For SPI_SETMOUSECLICKLOCKTIME, the pvParam value should specify the time directly. It is not a pointer to the DWORD specifying the time, as given in the documentation.
Priya26
2/16/2012


Título: Re: SPI_GETMOUSECLICKLOCKTIME cambia con valores incorrectos
Publicado por: patilanz en 9 Noviembre 2014, 19:14 pm
Justo lo probé y luego vi tu respuesta  ;D

Como depuraste rundll32.exe yo al abrir el mouse y luego al intentar attach desde olly me sale ERROR_NOT_SUPPORTED ?

Creo que pasa lo mismo con SPI_SETMOUSECLICKLOCKTIME


Título: Re: SPI_GETMOUSECLICKLOCKTIME cambia con valores incorrectos
Publicado por: Eternal Idol en 9 Noviembre 2014, 19:19 pm
Muy facil, yo uso WinDbg  :silbar:


Título: Re: SPI_GETMOUSECLICKLOCKTIME cambia con valores incorrectos
Publicado por: patilanz en 9 Noviembre 2014, 20:48 pm
Y no hay menara de hacer lo con ollydgb ? Ahora no tengo instalado el windgb y no me apetece instalarlo.


Título: Re: SPI_GETMOUSECLICKLOCKTIME cambia con valores incorrectos
Publicado por: Eternal Idol en 9 Noviembre 2014, 21:04 pm
No se, no uso ese depurador.