Page 1 of 1

ABC para Novatos 1: HOTKEYS Y HOTSTRINGS

Posted: 26 Aug 2016, 13:29
by Guill
Hola a todos
Aclaro primeramente que no soy programador, apenas conozco AUTOHOTKEY, pero lo que comparto lo hago porque este programa me ha sido de mucha utilidad.

AVISO: No creo que pueda responder preguntas, porque apenas conozco lo que comparto. Ojalá les sirva.

__________________________________________
LO PRIMERO QUE HAY QUE HACER PARA EMPEZAR A USAR AUTOHOTKEY


Una vez instalado AutoHotkey, tendremos que decirle qué hacer. Este proceso se llama "Scripting" en inglés y quiere decir: realizar un guión (script) que el programa ejecutará.

Instrucciones para crear un nuevo script:

1. Haga clic derecho en el escritorio, o en alguna carpeta que quiera alojar el script.
2. Buscar "Nuevo" en el menú.
3. Hacer clic en "AutoHotkey script" dentro del menú "Nuevo".
4. Ponerle un nombre. Nota: Se debe terminar con una extensión .ahk. Ejemplo: mi script.ahk
5. Hacer doble click en el nuevo archivo creado.
6. Haga clic en "Editar script".
7. Una ventana debería haber aparecido, probablemente, el Bloc de notas. Si es así,
Ya estamos en condiciones de dar las primeras indicaciones.


1. HOTKEYS Y HOTSTRINGS

1. AHK permite crear atajos de teclado (hotkey o shortcut) o cadenas de texto (hotstrings) de modo tal que luego de pulsarlas o escribirlas, active alguna función asignada.

→ Hotkey: una combinación de teclas que al pulsarla realiza algo (como Cntrl + V equivale a pegar lo que está en el portapapeles)

→ Hotstring: un texto determinado, que al escribirlo (tipearlo), escribe un texto mayor, un símbolo o ejecuta alguna función asignada.


HOTKEYS
Las teclas auxiliares del teclado tienen un caracter específico para que AHK lo interprete.

+ = shift
! = Alt
^ = Control
# = Win (tecla Windows)

Aclaración: estas teclas no funcionan en sí mismas (al menos no sólo con su símbolo. Para que funcionen sólo pulsándolas, hay que llamarlas por su nombre, es decir; "Shift", "Alt", "Control" y "Win").
Estos símbolos son comodines, siempre acompañan a otra tecla principal.

Veamos ejemplos:

!A:: ; funcionará cuando se pulse Alt + A
#+F3:: ; funcionará cuando se pulse Windows + Shift + F3 (la tecla de función F3)

NOTA: véase que los comentarios están después de un punto y coma (;). Esto mismo se puede usar en el script para hacer aclaraciones. El programa interpreta hasta el punto y coma, lo demás no lo considera y salta a la nueva línea.



HOTSTRINGS
Su uso más elemental, es el de sustituir un texto tipeado por otro que el usuario quiera para que se active al escribir.

Su estructura es la siguiente:

Code: Select all

::s.c::Saludos cordiales
Al escribir "s.c" y colocar un espacio luego, el programa escribirá "Saludos cordiales". Pero lo interesante es que puede poner todo el texto que queramos. Para usar cambios de párrafo tendremos que escribir {Enter} del siguiente modo:

Code: Select all

::3v3::Estimado cliente {Enter} recibimos su pedido. {Enter} En breve nos estamos comunicando con usted. {Enter} Saludos cordiales.

Al tipear 3v3, se activará ese texto

Estimado cliente
recibimos su pedido.
En breve nos estamos comunicando con usted.
Saludos cordiales.

Si el texto es muy largo, conviene escribirlo entre paréntesis, de este modo

Code: Select all

::3v3::
(
Estimado cliente 
recibimos su pedido. 
En breve nos estamos comunicando con usted. 
Saludos cordiales. 
)
Return
Pero eso será (en ambos casos) si luego de 3v3 colocamos una coma, un punto o un espacio. Para que se active sin esto, debemos incluir un asterisco de este modo

Code: Select all

:*:3v3::Estimado cliente.... (etcétera)
Otros condicionantes útiles:

? = funciona sin tener que ser una palabra sola. Es decir, que si dentro de una palabra, uno incluyera 3v3, se activaría. Esto puede parecer poco útil, pero luego se verá su uso más práctico, por ejemplo, cuando uno tipea rápido y se equivoca; al volver a escribirlo correctamente, no es necesario borrar lo tipeado:
Ejemplo: 3vv3v3. (al principio no hará nada por el error, pero se activará con la última parte, lo que aparece en negrita)

LA TECLA BACKSPACE: Si uno se equivoca al escribir, y se da cuenta, puede borrar los caracteres erróneos con esta tecla y Autohotkey de todos modos reconoce la parte previa que no fue borrada.
Ejemplo
"3v4 [Bacspace] 3" → para AHK sigue siendo válido la parte "3v" no borrada, y activará el hotstring para 3v3.


C = Distingue mayúsculas de minúsculas. Quiere decir que si el texto tiene diferenciación en esto, no va a funcionar si no se lo tipea exactamente. Si no está esta C, funciona indistintamente.

Code: Select all

:*::saº::Salamanca ; se ejecutará inmediatamente después de pulsar el º

:?::saº::Salamanca  ; si uno escribiera "empresaº" también funcionará porque termina con "saº"

:C::Saº:: ; funcionará sólo si se escribe literalmente. Con saº no va a funcionar.

Pueden combinarse: (sólo funcionará cuando esté con mayúscula, además del otro rasgo que otorga el asterisco y el signo de interrogación)

Code: Select all

:C*?::Saº::Salamanca

Se puede utilizar para símbolos, y letras de idiomas extranjeros

Code: Select all

:*?:r6r::® ; símbolo de marca registrada
:*?:b4b::ß  ; (Eszett alemana)

:*?:c3c::ç ;  (c con cedilla, propia del francés)
:*?:c3mc::Ç ; (misma letra, pero con mayúscula)
- IMPORTANTE: si la "m", en el último ejemplo, que nos puede servir para indicar mayúscula, va antes, o después de "c3c", no generará efecto distinto, ya que a ese grupo de letras ya le asignamos la letra minúscula. Es necesario hacer una combinación distinta, aunque podamos basarnos en otra.
Por eso, se escribió así en el ejemplo
"c3mc"


Mismas funciones pero con HOTKEYS

Code: Select all

+#r::® ; símbolo de marca registrada

#c::ç  ; (c con cedilla, propia del francés)

#+c::Ç ; (lo mismo pero con mayúscula)

#b::ß  ; (Eszett alemana)

USO MUY ÚTIL DE LOS HOTSTRINGS

No sólo sirven para lo anteriormente descripto. Su otro gran valor es que pueden cumplir la mayoría de las funciones que hace un HOTKEY, sólo que en lugar de pulsar simultáneamente dos o más teclas, se activa alguna función luego de tipear determinada combinación.
Sólo hay que tener en cuenta que para esto, deben ser escritas como se ejemplifica.
Su utilidad, es que uno no necesita memorizar miles de combinaciones de teclas, sólo tenemos que organizar nuestras necesidades en base a palabras (o fragmentos de ellas), que al tipearlas (quizás combinadas con algún número o signo, para que podamos tipear la palabra cuando la necesitamos como tal), generen una o más acciones o tareas.
Para los ejemplos, anticiparemos el uso de Run, que luego explicaremos.

; ABRIR EL ARCHIVO DE MI LISTA DE TAREAS

Code: Select all

:*?:t3areas:: 
Run C:\Users\MyDocuments\tareas.txt
Return
; ABRIR GOOGLE

Code: Select all

:*?:g3oogle:: 
Run http://www.google.com
Return
Para seguir un criterio, en los ejemplos se coloca un número 3 luego de la primera letra, por lo cual, esto se activará sólo en ese caso, y no cuando simplemente se tipee "tareas" o "google" (por lo tanto, no habrá otro efecto que el simple tipeo de esas palabras). Entonces, sólo necesitamos acordarnos de las palabras, y tener presente que siempre incluya un 3 luego de la primera letra.
Más abajo, van otros ejemplos.


USO DE "RUN"
Veamos algunos ejemplos con Run, que es el comando más fácil y útil prioritariamente
"Run" sirve, por ahora, para
abrir programas,
ejecutar archivos,
abrir carpetas,
abrir páginas web.

:::: simple, una función por combinación de teclas ::::

Code: Select all

!A::Run notepad ; pulsando alt + A, se abre el Block de Notas
#^E:: Run http://www.google.com.ar; pulsando Win + Ctrl + E, se abre el Block de Notas

+8:: Run C:\Users\Usuario..\Videos ; abre la CARPETA de videos al pulsar shift + 8. Asegurarse de que esté bien hecha la ruta.

+^t:: Run C:\Users\MyDocuments\direcciones.txt ; abrirá el archivo que se le pida. En este caso uno de texto llamado "direcciones". Observar que tiene que estar con su extensión (.txt)

:::: dos o más ejecuciones por combinación ::::::

Se puede ejecutar varias cosas, con una única combinación de teclas. Así como también se puede hacer varias combinaciones para la misma orden. Lo importante en este caso, es disponerlo de este modo:

Ej1:

Code: Select all

#+H::
Run notepad
Run C:\Users\MyDocuments\direcciones.txt
Run C:\Users\Usuario..\Videos
Return
Realizará las tres tareas sólo con pulsar win + shift + H (importantístimo terminar con "Return": este comando frena las órdenes de ese shortcut / hotstring. De lo contrario, seguirá con las del siguiente, en caso de que haya más de un hotkey, hasta que encuentre un "return")

Ej.2

Code: Select all

#+H::
+^t::
#^E:: 
Run notepad
Return
Las 3 combinaciones, realizarán una única tarea: abrir el block de notas.

(Véase que en hotkeys, es indistinto el uso de mayúscula o minúscula)

HOTSTRINGS
Como anticipamos, los hotstrings pueden realizar tareas, además de sustituciones de letras, símbolos o textos. Prácticamente, funciona exactamente igual a un hotkey (en usos avanzados, hay restricciones específicas de cada uno).
Sólo debe ponerse de este modo, es decir, colocar la orden a ejecutar DEBAJO y NO a continuación. (a continuación, sólo sirve para las sustituciones simples y únicas)

Code: Select all

::dle2::
Run notepad
Run C:\....\musica.mp3
Run http://www.wikipedia.com
Return

También en combinación con hotkeys y con los modificadores vistos anteriormente

Code: Select all

:*?:dle2::
#+H::
+^t::
#^E:: 
Run notepad
Run C:\....\musica.mp3
Run http://www.wikipedia.com
Return

NO OLVIDAR
1. Siempre terminar con "Return" cuando hay más de una orden
2. El punto y coma (;) funciona de modo similar, pero por línea: luego de él, el programa no interpreta nada más que se escriba a la derecha de él. Sirve precisamente para hacer anotaciones o recordatorios.
3. La distinción de Mayúsculas y minúsculas, son útiles sólo para Hotstrings. A los hotkeys les da lo mismo.

FINALMENTE,
HOTKEYS: SI SE ACABARAN LAS POSIBLES COMBINACIONES
Aunque sería muy difícil que utilicemos todas las combinaciones posibles, Autohotkey prevé la posibilidad de utilizar cualquier tecla como auxiliar (como funcionaría Shift, Alt, etc).
El formato es

TECLA AUXILIAR + símbolo & + TECLA PRINCIPAL::

ejemplo:

Code: Select all

s & y::Run calc

s:: Send {s}  ; 
Pero, es importante haber escrito esto en el mismo script:

s:: Send {s}

Porque de lo contrario, la letra "s" estará inutilizada, y sólo funcionará para combinaciones, pero no se la podrá usar para escribir. De esta manera, se está diciendo que si se la presiona sola, que envíe su función original.
DE TODOS MODOS: Para el uso de teclas auxiliares, conviene más utilizar las teclas menos frecuentadas, como Appskey, RControl, Break, etc.


:::::: FIN :::::::::

Re: ABC para Novatos 1: HOTKEYS Y HOTSTRINGS

Posted: 07 Mar 2018, 19:20
by JorgeN
A mí por ejemplo. Aunque llevo ya un tiempo usando autohotkey, avanzo muy lento. Así que muchas gracias por estos tutoriales, me vienen muy bien.

Re: ABC para Novatos 1: HOTKEYS Y HOTSTRINGS

Posted: 07 May 2018, 13:45
by PatrickSk
Hola, una pregunta... Como digo que apreté la tecla espacio? Muchas gracias...

Re: ABC para Novatos 1: HOTKEYS Y HOTSTRINGS

Posted: 29 Oct 2021, 20:33
by Angel Alcantar
Hola.
E tratado de usar el::

":*:"
pero cuándo escribo el texto que quiero que reemplace, pone cosas sin sentido, no se si sea por las mayúsculas, o teclas especiales, com ola ñ.
me podrían ayudar? gracias!