Ejecutar Paint con presionar 3 veces una tecla Topic is solved

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

Moderator: Flipeador

Wazowski
Posts: 72
Joined: 16 Jun 2015, 21:04

Ejecutar Paint con presionar 3 veces una tecla

07 Jul 2019, 14:23

Hola buen días

Bueno básicamente eso como puedo ejecutar Paint con tan solo presionar la letra P (3) veces.

Estoy algo perdido y para la programación al nivel que sea soy malísimo

Desde ya muy agradecido

Saludos desde Venezuela
Wazowski
Posts: 72
Joined: 16 Jun 2015, 21:04

Re: Ejecutar Paint con presionar 3 veces una tecla

07 Jul 2019, 19:46

Habrá un nivel mas PRO que este código.???

Tengo que presionar enter para poder que se ejecute el PAINT y ese detalle no lo quiero que puedo hacer ?

Code: Select all

::ppp::
Run C:\Windows\System32\mspaint.exe
return
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Ejecutar Paint con presionar 3 veces una tecla

07 Jul 2019, 20:49

Hola.

Code: Select all

~p::
if (A_PriorKey             == "p")
&& (A_TimeSincePriorHotkey <= 250)
{
    if (flag)
    {
        run mspaint.exe
    }
    flag := TRUE
}
else
    flag := FALSE
return
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Ejecutar Paint con presionar 3 veces una tecla

08 Jul 2019, 17:28

Hice una corrección, cambié A_ThisHotkey (que no tenía sentido la manera en que se estaba usando) por A_PriorKey. Escribí el código muy rapido y no me di cuenta.
Sin A_PriorKey, mspaint.exe se ejecutaba al escribir muy rápido con la letra p (ej. pxpxpx ejecutaba la aplicación).
Nota: puedes cambiar el valor 250 por el que quieras (>0), mientras menor sea este valor, mas rápido tendrás que presionar la p para ejecutar mspaint.exe. Indica el tiempo máximo en milisegundos (no inclusive) que deben pasar para descartar la siguiente pulsación de la tecla p o romper la secuencia de tres pulsaciones.

:wave:
Wazowski
Posts: 72
Joined: 16 Jun 2015, 21:04

Re: Ejecutar Paint con presionar 3 veces una tecla

08 Jul 2019, 19:33

@Flipeador

Como puedo modificar en vez de 3 sean 4 o las que quiera ? no lo veo en el código

Está corrección funciona mejor que la otra cuando recargaba se accionaba presionando 2 veces la p pero luego si volvía a la normalidad presionando 3 veces p

Genial :clap:
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Ejecutar Paint con presionar 3 veces una tecla  Topic is solved

08 Jul 2019, 21:02

Cambia el número 3 de la variable times por la cantidad deseada. Para cambiar la letra simplemente cambia p en ~p::.

Code: Select all

times := 3    ; Cantidad de veces que la letra se debe pulsar.
count := 1    ; No modificar.
delay := 250  ; Tiempo máximo, en milisegundos. Pasado este tiempo, se rompe la secuencia.

~p::  ; Tecla deseada.
if ("~" . A_PriorKey       == A_ThisHotkey)
&& (A_TimeSincePriorHotkey <=        delay)
{
    if (times == ++count)
    {
        ; Aquí poner cualquier código. --->
        run mspaint.exe
        ; <---
    }
}
else
    count := 1
return
Wazowski
Posts: 72
Joined: 16 Jun 2015, 21:04

Re: Ejecutar Paint con presionar 3 veces una tecla

08 Jul 2019, 21:10

@Flipeador

Bravo!!! :clap:

Muchas Gracias. :)
onixma211
Posts: 1
Joined: 21 Nov 2022, 15:47

Re: Ejecutar Paint con presionar 3 veces una tecla

21 Nov 2022, 15:56

hola, necesito ayuda por favor, soy nuevo en esto y deseo que al presionar 3 veces una tecla por ejemplo la tecla F2 o cualquier tecla se presione automaticamente otra tecla por ejemplo el numero 5, muchas gracias por la ayuda
sofista
Posts: 650
Joined: 24 Feb 2020, 13:59
Location: Buenos Aires

Re: Ejecutar Paint con presionar 3 veces una tecla

21 Nov 2022, 17:34

@onixma211 Este script está adaptado del ejemplo 3 del comando SetTimer (clic para una explicación de los comandos utilizados en el script), funciona con una letra común, como p, una tecla de función, como F2, o una modificatoria, como LAlt.

Si presionas el hotkey, en el ejemplo p, tres veces en menos de un segundo, se envía un 5 .

Code: Select all

p::
if (KeyPresses > 0) {
	KeyPresses += 1
	return
}

KeyPresses := 1
SetTimer, KeyToPress, -1000    ; en milisegundos, ajústalo a tus necesidades.
return

KeyToPress:
if (KeyPresses = 3) {
	Send, 5                    ; o la tecla o texto que quieras.
}

KeyPresses := 0
return

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 17 guests