PDA

Ver la Versión Completa : stickykeys


OscarG
11-04-2006, 15:27:21
Hola...esta pregunta, la pregunté hace un mes o asi, pero desapareció...¿?¿?

Mi problema era activar y desactivar las stickykeys desde código y estuve mirando en el foro y no encontré nada.

Bueno, encontré la solución y quería ponerla para aportar, q no siempre va a ser preguntar...

Aquí, miraría si lo tiene activado y lo desactiva

//variable global para saber si lo tiene activado o no.
stikykeys:= 0;
stike.cbSize:= SizeOf(TStickyKeys);
stike.dwFlags:= 0;
if ( SystemParametersInfo( SPI_GETSTICKYKEYS, SizeOf(TStickyKeys), @stike, 0 ) ) then
begin
if ( stike.dwFlags and ( SKF_STICKYKEYSON or SKF_HOTKEYACTIVE ) > 0 ) then
begin
if ( ( stike.dwFlags and SKF_STICKYKEYSON ) > 0 ) then
stikykeys:= 1;
if ( ( stike.dwFlags and SKF_HOTKEYACTIVE ) > 0 ) then
stikykeys:= stikykeys or 2;
stike.dwFlags:= stike.dwFlags and not(SKF_STICKYKEYSON or SKF_HOTKEYACTIVE) ;
SystemParametersInfo( SPI_SETSTICKYKEYS, SizeOf(TStickyKeys), @stike, 0 );
end;
end;




Aqui mira si antes lo tenía activado y si es asi, lo desactiva...

if ( stikykeys > 0 ) then
begin
if ( ( stikykeys and 1 ) > 0 ) then
stike.dwFlags:= stike.dwFlags or SKF_STICKYKEYSON;
if ( ( stikykeys and 2 ) > 0 ) then
stike.dwFlags:= stike.dwFlags or SKF_HOTKEYACTIVE;

SystemParametersInfo( SPI_SETSTICKYKEYS, SizeOf(TStickyKeys), @stike, 0 );
end;


Espero q le sirva a alguien de ayuda. Aparte de esto, se podría hacer más cosas de accesibilidad por ejemplo mirando en la ayuda de msdn y viendo las distintas opciones.