Problema con tecla Bloq Mayus

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Avatar de Usuario
melvinhn
Hacker del Foro
Mensajes: 75
Registrado: 16 Jul 2011, 22:14
Ubicación: Honduras, Cortes, Puerto Cortes, Col Miraflores
Contactar:

Problema con tecla Bloq Mayus

Mensaje por melvinhn »

Código: Seleccionar todo

While 1
HotKeySet("{ESC}", "Salir")
HotKeySet("a", "TeclearMinus")
HotKeySet("A", "TeclearMayus")
Sleep(10)
WEnd

Func TeclearMinus()
ConsoleWrite("Preciono la a Miniscula"&@CRLF)
EndFunc

Func TeclearMayus()
ConsoleWrite("Preciono la A Mayuscula"&@CRLF)
EndFunc

Func Salir()
Exit
EndFunc
Bueno se que sabran ayudarme

tengo dos dudas respecto a este problema

Primera duda-- :smt021

1- si tengo Bloq Mayus desactivada me tiene que salir (Preciono la a Miniscula)
2- si tengo Bloq Mayus activada me tiene que salir (Preciono la A Mayuscula)

La segunda duda-- :smt021
En el momento que el scrip esta ejecutado, el teclado no puede escribir la tecla a en minuscula o mayuscula
Avatar de Usuario
melvinhn
Hacker del Foro
Mensajes: 75
Registrado: 16 Jul 2011, 22:14
Ubicación: Honduras, Cortes, Puerto Cortes, Col Miraflores
Contactar:

Re: Problema con tecla Bloq Mayus

Mensaje por melvinhn »

La unica idea que se me ocurre es talves con estos codigos ya que diferencia entre mayusculas
Código ASCII
Case Asc("a")
Case Asc("A")

o bien con el
Chr("a")
Chr("A")

pero no tengo idea
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Problema con tecla Bloq Mayus

Mensaje por Ximorro »

No tengo muy claro que HotKeySet funcione diferenciando la mayúscula y la minúscula, pues en realidad son la misma tecla.

Pero si lo que quieres realmente es ver es si está activo el bloqueo de mayúsculas se hace de otra manera.
Hace falta usar una función de la DLL user32.dll.

El siguiente código mira si se ha pulsado la mayúscula o minúscula según si está activo el "Bloq Mayús".
Por cierto, "presionar" es con S, no con C ;-)

Código: Seleccionar todo

Global Const $VK_CAPITAL = 0x14 ; Keycode de CapsLock (bloqueo mayúsculas)
Global $UserDLL = DllOpen("user32.dll")

HotKeySet("a", "_Tecla_A")
HotKeySet("{ESC}", "_Salir")

While 1
	Sleep(1000)
WEnd

Func _Tecla_A()
	If _GetCapsLock() Then
		ConsoleWrite("Presionada A mayúscula" & @CRLF)
	Else
		ConsoleWrite("Presionada A minúscula" & @CRLF)
	EndIf
EndFunc

Func _GetCapsLock()
    Local $ret
    $ret = DllCall($UserDLL,"long","GetKeyState","long",$VK_CAPITAL)
    Return $ret[0]
EndFunc

Func _Salir()
	DllClose($UserDLL)
	Exit
EndFunc
Otra cosa será además que se pueda estar presionando la tecla mayúsculas (no el bloqueo), para eso sí se puede hacer con HotKeySet mirando HotKeySet("+a", "_Shift_A"), por ejemplo, y en esa función, si no está "Bloq Mayús" tienes la mayúscula, y si lo está la minúscula (pues al presionar mayús hace la inversa de lo que tengas en bloqueo mayúsculas)
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
melvinhn
Hacker del Foro
Mensajes: 75
Registrado: 16 Jul 2011, 22:14
Ubicación: Honduras, Cortes, Puerto Cortes, Col Miraflores
Contactar:

Re: Problema con tecla Bloq Mayus

Mensaje por melvinhn »

Hay disculpa por mi mala ortografia, bueno probare el codigo
hay les digo como me quedo... gracias por todo :smt024
Responder