Re: detectar el estado de bloqueo de mayúsculas
Publicado: 14 Sep 2009, 14:12
Si lo entiendo lo que quieres hacer es algún proceso cuando detectes una combinación ALT+TAB ¿no es así?
Pues chico, con mi programita detecto perfectamente la combinación ALT+TAB, no sé por qué dices que no funciona.
Pero si buscas algo concreto puedes ir al grano y en vez de mirar todo el teclado espera esas teclas concretas, lo que puedes hacer es lo siguiente:
Meterte en un bucle que espera que ALT (12) y TAB (09) estén pulsados a la vez, tipo
While NOT (_IsPressed("12", $UserDLL) AND _IsPressed("09", $UserDLL))
Sleep(50)
Wend
Es decir, "mientras no están pulsadas LAS DOS A LA VEZ se espera".
Y luego te esperas a que suelte las dos teclas:
While (_IsPressed("12", $UserDLL) OR _IsPressed("09", $UserDLL))
Sleep(50)
Wend
Es decir, "mientras hay ALGUNA de las dos presionadas, se espera". (por ejemplo puede mantener ALT mientras suelta y pulsa TAB varias veces)
Y después de ese bucle pones tu proceso, ahí ya habrá usado ALT+TAB, y lo habrá soltado.
(Que conste que lo escribo aquí sin probarlo, espero no haber metido la pata con los AND, OR, NOT, etc...) Inténtalo y si no te sale nos pones el código y miramos a ver si la he liado
A todo esto, esto no impide que Windows u otros programas que miran esas teclas TAMBIEN hagan su proceso. El hecho de mirar las teclas pulsadas y hacer algo en consecuencia no impide que otros programas también lo hagan. Es decir, vas a poder saber cuándo el usuario usa ALT+TAB, pero Windows igual va a cambiar de ventana.
Pues chico, con mi programita detecto perfectamente la combinación ALT+TAB, no sé por qué dices que no funciona.
Pero si buscas algo concreto puedes ir al grano y en vez de mirar todo el teclado espera esas teclas concretas, lo que puedes hacer es lo siguiente:
Meterte en un bucle que espera que ALT (12) y TAB (09) estén pulsados a la vez, tipo
While NOT (_IsPressed("12", $UserDLL) AND _IsPressed("09", $UserDLL))
Sleep(50)
Wend
Es decir, "mientras no están pulsadas LAS DOS A LA VEZ se espera".
Y luego te esperas a que suelte las dos teclas:
While (_IsPressed("12", $UserDLL) OR _IsPressed("09", $UserDLL))
Sleep(50)
Wend
Es decir, "mientras hay ALGUNA de las dos presionadas, se espera". (por ejemplo puede mantener ALT mientras suelta y pulsa TAB varias veces)
Y después de ese bucle pones tu proceso, ahí ya habrá usado ALT+TAB, y lo habrá soltado.
(Que conste que lo escribo aquí sin probarlo, espero no haber metido la pata con los AND, OR, NOT, etc...) Inténtalo y si no te sale nos pones el código y miramos a ver si la he liado
A todo esto, esto no impide que Windows u otros programas que miran esas teclas TAMBIEN hagan su proceso. El hecho de mirar las teclas pulsadas y hacer algo en consecuencia no impide que otros programas también lo hagan. Es decir, vas a poder saber cuándo el usuario usa ALT+TAB, pero Windows igual va a cambiar de ventana.