Activar/Suspender comados

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

beral235
Posts: 36
Joined: 21 Sep 2017, 09:33

Activar/Suspender comados

13 Nov 2017, 09:45

Hola buenos dias. Sere breve al explicar mi problema.

Quisiera que con una combinacion de teclas del tipo:

Code: Select all

:*?:ii::  
{
.......
}
Y al escribir "ii" se activen otros comandos del mismo tipo y al escribir nuevamente "ii" estos se desactiven ( o se suspendan temporalmente)
En otras palabras el "ii" inicial seria como un "on" y "ii" final seria un "off".

Agradeceria enormente si es que me pudieran ayudar. Que tengan buen dia.
Last edited by beral235 on 14 Nov 2017, 20:42, edited 1 time in total.
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Activar/Suspender comados

13 Nov 2017, 20:39

Hola beral235,

Code: Select all

variable := true
return

::ii::
variable := not variable ; da alternativamente false, true, false, true etc.
return

#If (variable) ; hotstring contextual - es activado solo a condición de que la variable esté "true"
::jj::
MsgBox, test
return
#If
documentación:
#If
my scripts
beral235
Posts: 36
Joined: 21 Sep 2017, 09:33

Re: Activar/Suspender comados

14 Nov 2017, 11:52

Gracias por tu respuesta A_AhkUser pero me sale error. en la ultima linea (#If) de seguro es la version de mi ahk.
Al borrar (#If) de la ultima linea el "jj" se ejecuta como si no tuviera restricciones.
Se me ocurrio algo, quizas tiene errores de sintaxis, por que no resulta:

Code: Select all

::ii::  ;  "If simple"
   xxxx := (! xxxx)
      {
      If ( xxxx )
      {
      variable := 1
      }
      Else 
      {
      variable := 0
      }
      }
      return

#If (variable==1)
{
::jj::
MsgBox, test
return
}
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Activar/Suspender comados

14 Nov 2017, 15:29

Hola beral235,


Tu codigo es correcto, no contiene errores de sintaxis (aunque ciertos de los corchetes sean inecessarios). Ciñendo a la documentacion solo se puede utilizar #ifwinactive/#ifwinexist con los hotstrings, mas los ambos funcionan bien por mi lado (ahk v1.1.25.02)...

De hecho existe una alternativa, mas sencilla, dado que Suspend se aplica a los hotstrings tambien:

Code: Select all

::ii::
MsgBox, test
return
::jj::
Suspend ; si la primera linea de la subrutina es "Suspend" el hotkey/hotstring es eximido de suspencion
return
my scripts
beral235
Posts: 36
Joined: 21 Sep 2017, 09:33

Re: Activar/Suspender comados

15 Nov 2017, 19:31

Muchas gracias A_AhkUser, el problema era la versión mi Ahk. Ahora todo va perfecto.
Aquí les dejo lo que tenia en mente quizá les sirva no es muy avanzado pero me eeeeenncanta :dance: va con mis necesidades.

Code: Select all

~f:: ;"MODO NORMAL"
KeyWait, f, T0.3
  if (ErrorLevel){                 
  	SendInput {left}{del}
    variable := 1
    sleep 1000
    Return
  } 
return ;"--------------Activate------------"
#If (variable == 1) 
k::
SendInput {down}
return
i::
SendInput {up}
return
j::
SendInput {left}
return
l::
SendInput {right}
return
~h::
{
  SendInput {BS}
   variable := 0
   SoundBeep, 500
}
return
#If

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 18 guests