Page 1 of 1

Tab trigger en AutoHotkey

Posted: 01 Mar 2018, 20:38
by beral235
Hola a todos, tengo un pequeño problema que no he podido solucionar, es por eso requiero vuestra ayuda.
Intentare explicarlo detalladamente:

Code: Select all

:*:go::
 	SendInput, uno   
 	;El Script se detiene y espera que se presione primer "Tab"
 KeyWait, Tab, D  
 	;Una vez presionado el primer "Tab" se muestra "dos"
	SendInput, dos  
	;El Script se detiene y espera que se presione el segundo"Tab"
KeyWait, Tab, D 
	;Una vez presionado el segundo "Tab" se muestra "tres"
	SendInput, tres
	;El Script se detiene y espera que se presione el tercer "Tab"
KeyWait, Tab, D
	;Una vez presionado el tercer "Tab" se muestra "cuatro"
	SendInput, cuatro
Return
El Script de arriba no funciona correctamente es posible que usar KeyWait no lleve a la solucion, pero me sirvio para dar una explicacion mas clara.
Este Script se conoce como se conoce como Tab-Trigger, en el plugin Emmet, pero quisiera que sea personalizable, que la tecla "Tab" se pueda cambiar por otra por ejemplo la coma (,) o el punto (.).
Gracias de antemano.

Re: Tab trigger en AutoHotkey

Posted: 02 Mar 2018, 00:36
by divanebaba
Hola.
Yo uso el traductor de Google. Entonces, si suena horrible, Google tiene la culpa. :mrgreen: :mrgreen:
Pruebe lo siguiente

Code: Select all

KeyWait, `,, D  ; Usa la coma
KeyWait, `., D  ; Usa la punto
Esto se llama "enmascaramiento" en inglés.
Saludos desde Alemania.

Asistir a una buena escuela no está prohibido para niños extranjeros en ALEMANIA, el gobierno casi lo hace imposible.
Prácticamente la única forma de una educación razonable: asistir a la escuela secundaria en el extranjero.

Re: Tab trigger en AutoHotkey

Posted: 02 Mar 2018, 07:09
by beral235
Hola divanebaba, gracias por tu respuesta pero el script aún no funciona correctamente.
Al escribir "go": uno
Al presionar el primer "Tab": dostrescuatro
Lo que busco es que a cada "Tab" le siga un mensaje:
Al presionar el primer "Tab": dos
Al presionar el segundo "Tab": tres
Al presionar el tercero "Tab": cuatro

Re: Tab trigger en AutoHotkey

Posted: 02 Mar 2018, 10:14
by Flipeador
La opción D en KeyWait espera a que el usuario presione la tecla para continuar, pero cuando se cumple el primer KeyWait, Tab, D, el script continua demasiado rápido y ejecuta el segundo y tercer KeyWait, Tab, D antes de que dejes de presionar la tecla, es por eso que debes añadir un KeyWait, Tab (sin la D) para que espere primero a que sueltes la tecla.

Code: Select all

:*:go::
 	SendInput, uno   
 	;El Script se detiene y espera que se presione primer "Tab"
 KeyWait, Tab, D  
 	;Una vez presionado el primer "Tab" se muestra "dos"
	SendInput, dos  
	;El Script se detiene y espera que se presione el segundo"Tab"
KeyWait, Tab
KeyWait, Tab, D 
	;Una vez presionado el segundo "Tab" se muestra "tres"
	SendInput, tres
	;El Script se detiene y espera que se presione el tercer "Tab"
KeyWait, Tab
KeyWait, Tab, D
	;Una vez presionado el tercer "Tab" se muestra "cuatro"
	SendInput, cuatro
Return

Re: Tab trigger en AutoHotkey

Posted: 02 Mar 2018, 11:59
by divanebaba
Traductor de Google:
Hola chicos. Lo siento. La traducción no es comprensible.
Lo encontré gracioso, pero ahora me dolía la extraña traducción. :mrgreen: :mrgreen:
Saludos desde Alemania.

Original:
Hey guys. I'm sorry. The translation is not understandable.
I found it funny, but now I had headache from the strange translation. :mrgreen: :mrgreen:
Best regards from Germany.

Re: Tab trigger en AutoHotkey

Posted: 02 Mar 2018, 12:31
by Flipeador
divanebaba wrote:Hey guys. I'm sorry. The translation is not understandable.
I found it funny, but now I had headache from the strange translation.
Hallo Divanebaba, nun... du lagst nicht so falsch, du hast geantwortet, was ich machen wollte, aber abgesehen davon wollte ich einen Fehler mit dem Code lösen, den ich bereits hatte. Sicherlich war dein Beitrag auch nützlich ;)
btw: I have no idea if I translated it well haha!
Greetings! :wave:

Re: Tab trigger en AutoHotkey

Posted: 02 Mar 2018, 22:40
by beral235
Hola Flipeador, gracias por responder, la solución que enviaste no tiene errores, pero usando Script me di cuenta que el HotString no se refresca cuando escribo nuevamente "go", intente usar esto pero no dio resultado.

Code: Select all

:*:go::
value := !value
if value {
	SendInput, uno{ENTER}
	KeyWait, w	
	KeyWait, w, D	
	SendInput, {BS}dos{ENTER}
	KeyWait, w	
	KeyWait, w, D
	SendInput, {BS}tres{ENTER}
	KeyWait, w	
	KeyWait, w, D
	SendInput, {BS}cuatro{ENTER}
	Return
}
else{
	Reload
}
Return
Tambien se puede ver que le agrege al inicio de cada SendInput un {BS} para borrar la tecla que se presiona en cada KeyWait, w, D, en esta caso la w.
Si existiese alguna manera de solo refrescar solo el HotString seria perfecto.

Re: Tab trigger en AutoHotkey  Topic is solved

Posted: 02 Mar 2018, 23:39
by Flipeador

Code: Select all

:*:go::
SendInput uno{ENTER}
Input, t, L1 M V E,, w
If (ErrorLevel == "Match")
{
    SendInput {BS}dos{ENTER}
    Input, t, L1 M V E,, w
    If (ErrorLevel == "Match")
    {
        SendInput {BS}tres{ENTER}
        Input, t, L1 M V E,, w
        If (ErrorLevel == "Match")
            SendInput {BS}cuatro{ENTER}
    }
}
Return
ahk v2:
Spoiler

Re: Tab trigger en AutoHotkey

Posted: 03 Mar 2018, 18:20
by divanebaba
Flipeador wrote:... Hallo Divanebaba, nun... du lagst nicht so falsch, du hast geantwortet, was ich machen wollte, aber abgesehen davon wollte ich einen Fehler mit dem Code lösen, den ich bereits hatte. Sicherlich war dein Beitrag auch nützlich ;)
btw: I have no idea if I translated it well haha!
Greetings! :wave:
Hey, Flipeador,
your german sounds fantastic. I hope my spanish translation was a little bit like your german. :D :D

Re: Tab trigger en AutoHotkey

Posted: 04 Mar 2018, 17:21
by beral235
Gracias por la ayuda Flipeador, tendre que leer la documentacion por que no entiendo muy bien cómo es que funciona, en especial estos parametros L1 M V E.
Hasta la proxima. :wave: