Hola a todos.
Explicare brevemente mi problema agradecería cualquiera ayuda de vuestra parte.
Quisiera que se muestre en la pantalla un cuadro de dialogo cuando active la tecla BloqMayus y una ves lo desactive el cuadro de dialogo se cierre, y asi sucesivamente, pero me permita seguir escribiendo, sin que la ventana emergente quede como principal.
Es algo asi como un indicador visual, que me permita saber que esta activo el BloqMayus.
Gracias de Antemano.
Indicador Visual de la tecla BloqMayus
Moderator: Flipeador
Re: Indicador Visual de la tecla BloqMayus
Hola beral235,
Es un ejemplo que demuestre une manera de hacerlo mediante un Hotkey y un GUI. Puedes personalizar las variables en la parte superior del script; para encontrar la ubicacion de la imagen y su indice he utilizado uno de los enlaces compartido por Flipeador en este foro - Iconos De Windows: https://diymediahome.org/windows-icons- ... s/?lang=es. Por lo que se trata de los colores mira en la documentacion: https://www.autohotkey.com/docs/command ... htm#colors.
Un saludo
Es un ejemplo que demuestre une manera de hacerlo mediante un Hotkey y un GUI. Puedes personalizar las variables en la parte superior del script; para encontrar la ubicacion de la imagen y su indice he utilizado uno de los enlaces compartido por Flipeador en este foro - Iconos De Windows: https://diymediahome.org/windows-icons- ... s/?lang=es. Por lo que se trata de los colores mira en la documentacion: https://www.autohotkey.com/docs/command ... htm#colors.
Code: Select all
; =============== variables (puedes personalizarlas) /===============
; posicion del indicador:
x := 0
y := 0
colorDeLaVentana := "000000"
ubicacionDeLaImagen := "imageres.dll"
indiceDeLaImagen := 55
; ===============/ variables ===============
WS_EX_CLICKTHROUGH := "E0x20" ; para que los tecleos pasen a través de la ventana
DetectHiddenWindows, On
Gui, CL:+ToolWindow -Caption +AlwaysOnTop +%WS_EX_CLICKTHROUGH% +LastFound
Gui, CL:Color, %colorDeLaVentana%
Gui, CL:Add, Pic, Icon%indiceDeLaImagen%, % ubicacionDeLaImagen ; especifica una imagen (un símbolo de candado por ejemplo aqui)
Gui, CL:Show, % "NA x" . x . " y" . y . " AutoSize " . (GetKeyState("Capslock", "T") ? "" : "hide") ; muestra al inicio la GUI en caso de que la tecla BloqMayus ya esté activada
WinSet, Transparent, 190 ; a fin de que puedas ver a través de la ventana
DetectHiddenWindows, On
return
~CapsLock::GUI, CL:Show, % "NA " . (GetKeyState("Capslock", "T") ? "" : "hide") ; NA permite que la ventana aparezca sin activàndose; GetKeyState("Capslock", "T") rescata el estatus de la tecla BloqMayus
Re: Indicador Visual de la tecla BloqMayus
Hola A_AhkUser,
Gracias por por tomarte el tiempo en responder.
Estuve indagando acerca de los archivos .dll y se me hace difícil entender como usarlo en el código que enviaste, el icono del candado no me aparece, solo aparece el logo AHK en la barra de tareas cada vez que se activa el BloqMayus (no se puede maximizar).
El archivo imageres.dll tiene que estar en un lugar especifico para que se pueda leer?. Tengo que escribir la ubicación completa de dicho archivo?
Gracias por por tomarte el tiempo en responder.
Estuve indagando acerca de los archivos .dll y se me hace difícil entender como usarlo en el código que enviaste, el icono del candado no me aparece, solo aparece el logo AHK en la barra de tareas cada vez que se activa el BloqMayus (no se puede maximizar).
El archivo imageres.dll tiene que estar en un lugar especifico para que se pueda leer?. Tengo que escribir la ubicación completa de dicho archivo?
Re: Indicador Visual de la tecla BloqMayus
Es posible que no tengas el archivo imageres.dll... En cualquier caso, puedes alternativemente cargar su propia imagen/icono en la GUI:
Pruba con esa imagen: salvala como imagen.png en la carpeta del script:
Pruba con esa imagen: salvala como imagen.png en la carpeta del script:
Code: Select all
; =============== variables (puedes personalizarlas) /===============
; posicion del indicador:
x := 0
y := 0
colorDeLaVentana := "000000"
ubicacionDeLaImagen := A_ScriptDir . "\imagen.png"
; ===============/ variables ===============
WS_EX_CLICKTHROUGH := "E0x20" ; para que los tecleos pasen a través de la ventana
DetectHiddenWindows, On
Gui, CL:+ToolWindow -Caption +AlwaysOnTop +%WS_EX_CLICKTHROUGH% +LastFound
Gui, CL:Color, %colorDeLaVentana%
Gui, CL:Add, Pic,, % ubicacionDeLaImagen ; especifica una imagen (un símbolo de candado por ejemplo aqui)
Gui, CL:Show, % "NA x" . x . " y" . y . " AutoSize " . (GetKeyState("Capslock", "T") ? "" : "hide") ; muestra al inicio la GUI en caso de que la tecla BloqMayus ya esté activada
WinSet, Transparent, 190 ; a fin de que puedas ver a través de la ventana
DetectHiddenWindows, Off
return
~CapsLock::GUI, CL:Show, % "NA " . (GetKeyState("Capslock", "T") ? "" : "hide") ; NA permite que la ventana aparezca sin activàndose; GetKeyState("Capslock", "T") rescata el estatus de la tecla BloqMayus
Re: Indicador Visual de la tecla BloqMayus
No te imaginas cuanto me ayudaste amigo, todos estos meses le tenia un panico a la documentacion de Ahk sobre todo por que esta en ingles, pero al no encontrar solución me puse a investigar y entendí mas o menos de que va la documentación, ahora hasta me dan ganas de investigar nuevos temas por mi cuenta
Encontre una posible solucion y lo mejor de todo es que si lo entiedo xd.
Code: Select all
~CapsLock::
xxxx := (!xxxx)
{
If ( xxxx )
{
SplashImage,F:\script\imagen.png, b fs18 FM55 cwblack CTgreen X600 Y400 CWCoo, ,,
}
Else
{
SplashImage, Off
}
}
return
Gracias nuevamente.
Por ultimo si no es mucha molestia una pregunta: En tu Pc corre normal el código que me enviaste arriba?
Re: Indicador Visual de la tecla BloqMayus
Hola beral235,
Me alegra mucho ver que has logrado solucionarlo. Es en efecto una buena idea de utilizar SplashImage. Mas aun, utilizando SplashImage se puede escibir el codigo en una línea gracias a las expresiones y, mas particularmente aqui, al operador ternario.
Respecto al otro codigo corre normal por mi parte (ahk v1.1.27.04 windows 8.1).
Solo veo dos cosas que podrian posiblemente surgir problemas:
Me alegra mucho ver que has logrado solucionarlo. Es en efecto una buena idea de utilizar SplashImage. Mas aun, utilizando SplashImage se puede escibir el codigo en una línea gracias a las expresiones y, mas particularmente aqui, al operador ternario.
Code: Select all
xxxx := true
; xxxx := GetKeyState("Capslock", "T")
~CapsLock::SplashImage % (xxxx:=!xxxx) ? "F:\script\imagen.png" : "Off", B X600 Y400
Solo veo dos cosas que podrian posiblemente surgir problemas:
- El camino de la imagen se escribe entre comillas: en efecto, si el codigo utiliza := en vez de = y mas generalemente expressiones, las cadenas de caracteres deben de ser puestas entre comillas.
- He añadido un MsgBox en el codigo que deberia tira alternativamente 1 (verdadero) y 0 (falso) si GetKeyState("Capslock", "T") rescata bien el estatus de la tecla BloqMayus.
Hay dos pêquenitos inconvenientes con SplashImage, no obstante. El primero es que no existe la contrapartida de SHOW: HIDE - ya que es necesario destruir/recrearlo de nuevo cada vez que se presione el hotkey cuando una GUI puede ser creado de una vez por todas antes el return (en la parte auto-ejecutada del script) - el hotkey, por su parte, contentandose con mostrarla/ocultarla. El segundo es que resultar mas facil modificar la transparencia y, mas generalemente, las características de la ventana-GUI (tales como la transparencia, hacer que los tecleos pasen a través de la ventana etc.). Pero less is more ya que supongo que tu codigo hace bien muy el asunto Code: Select all
; =============== variables (puedes personalizarlas) /===============
; posicion del indicador:
x := 0
y := 0
colorDeLaVentana := "000000"
ubicacionDeLaImagen := "F:\script\imagen.png"
; ===============/ variables ===============
WS_EX_CLICKTHROUGH := "E0x20" ; para que los tecleos pasen a través de la ventana
DetectHiddenWindows, On
Gui, CL:+ToolWindow -Caption +AlwaysOnTop +%WS_EX_CLICKTHROUGH% +LastFound
Gui, CL:Color, %colorDeLaVentana%
Gui, CL:Add, Picture,, % ubicacionDeLaImagen ; especifica una imagen (un símbolo de candado por ejemplo aqui)
Gui, CL:Show, % "NA x" . x . " y" . y . " AutoSize " . (GetKeyState("Capslock", "T") ? "" : "hide") ; muestra al inicio la GUI en caso de que la tecla BloqMayus ya esté activada
WinSet, Transparent, 190 ; a fin de que puedas ver a través de la ventana
DetectHiddenWindows, Off
return ; fin de la parte auto-ejecutada del script
~CapsLock::
MsgBox % GetKeyState("Capslock", "T")
GUI, CL:Show, % "NA " . (GetKeyState("Capslock", "T") ? "" : "hide") ; NA permite que la ventana aparezca sin activàndose; GetKeyState("Capslock", "T") rescata el estatus de la tecla BloqMayus
return
Who is online
Users browsing this forum: ositoMalvado and 18 guests