Post by ositoMalvado » 01 Sep 2022, 19:59
HOLA AMIGO VI TU CONSULTA Y QUISE SOLUCIONARLA, ESPERO QUE TE AYUDE MI CODIGO
Code: Select all
;OPTIMIZACION DE SCRIPT INICIA
#NoEnv
#MaxHotkeysPerInterval 99000000
#HotkeyInterval 99000000
#KeyHistory 0
#SingleInstance, Force
ListLines Off
Process, Priority, , A
SetBatchLines, -1
SetKeyDelay, -1, -1
SetMouseDelay, -1
SetDefaultMouseSpeed, 0
SetWinDelay, -1
SetControlDelay, -1
SendMode Input
;OPTIMIZACION DE SCRIPT TERMINA
class mantenerTecla{
;CREAMOS UN OBJETO PARA FACILITAR EL USO DEL SCRIPT
encendido:=false ;ESTADO DEL SCRIPT
tecla:="" ;TECLA A ENVIAR
espera:=0 ;TIEMPO DE ESPERA
repetir(){
;METODO repetir, MANTIENE PRESIONADA LA TECLA DEFINIDA CADA CIERTO TIEMPO
this.encendido:=true ;SCRIPT ENCENDIDO
while(this.encendido){
;MIENTRAS ESTÉ ENCENDIDO
if !IsObject(this.tecla) ;SI NO ES UN ARRAY
SendInput, % "{blind}{" this.tecla " DownR}" ;MANTENER Y ENVIAR TECLA
else ;SI ES UN ARRAY
Loop, % this.tecla.MaxIndex(){ ;POR CADA INDICE
SendInput, % "{blind}{" this.tecla[A_Index] " DownR}" ;MANTENER Y ENVIAR TECLA
sleep, % this.espera ;ESPERAR CIERTO TIEMPO
} ;REPITE
sleep, % this.espera ;ESPERAR CIERTO TIEMPO
} ;REPITE
}
cancelar(){
;METODO cancelar, SOLO APAGA EL SCRIPT
this.encendido:=false ;ESTADO DE SCRIPT APAGADO
if !IsObject(this.tecla) ;SI NO ES ARRAY
while GetKeyState(this.tecla[A_Index],"p") ;MIENTRAS ESTE PRESIONADA LA TECLA
SendInput, % "{" this.tecla " up}" ;SOLTAR TECLA
else ;SI ES UN ARRAY
Loop, % this.tecla.MaxIndex(){ ;POR CADA TECLA
while GetKeyState(this.tecla[A_Index],"p") ;MIENTRAS ESTE PRESIONADA
SendInput, % "{" this.tecla[A_Index] " up}" ;SOLTARLA
} ;REPETIR
}
__New(t,d:=1){
;AL CREAR EL OBJETO RECIBE TECLA "t" Y TIEMPO DE ESPERA "d"
this.tecla:=t ;ASIGNAMOS LA ENTREADA DE TECLA
this.espera:=d ;ASIGNAMOS LA ENTREADA DE ESPERA
}
} ;TERMINA DEFINICIÓN DE OBJETO
clickIzq_w:=new mantenerTecla(["lbutton", "w"])
;CREAMOS "CLICK IZQUIERDO W"
hola_ejemplo:=new mantenerTecla(["h","o","l","a"], 220)
;CREAMOS "hola" COMO EJEMPLO
letraZsola:=new mantenerTecla("z", 11)
;CREAMOS LETRA Z COMO EJEMPLO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;
;RECORDAR QUE LOS PARAMETROS SON UNA TECLA O UN ARRAY
;DE TECLAS Y EL TIEMPO SI ES QUE SE QUIERE MODIFICAR
;DEL PREDETERMINADO QUE ES "1"
;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F1:: ;CON F1 REPETIREMOS CLICK IZQ Y W
clickIzq_w.repetir()
Return
F2:: ;CON F2 SOLTAERMOS CLICK IZQ Y W
clickIzq_w.cancelar()
Return
1:: ;CON 1 REPETIREMOS "hola"
hola_ejemplo.repetir()
Return
2:: ;CON F2 SOLTAERMOS "hola"
hola_ejemplo.cancelar()
Return
q:: ;CON q REPETIREMOS Z
letraZsola.repetir()
Return
w:: ;CON w SOLTAERMOS Z
letraZsola.cancelar()
Return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;IMPORTANTE !!!! PARA LOS HOTKEYS NO USES MODIFICADORES
;, PARA EVITAR ERRORES, ES UNA SOLUCIÓN BÁSICA PERO
;FUNCIONAL QUE PUEDE AYUDARTE. NO CREES OBJETOS CON
;LAS MISMAS TECLAS QUE LAS ACTIVARAS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HOLA AMIGO VI TU CONSULTA Y QUISE SOLUCIONARLA, ESPERO QUE TE AYUDE MI CODIGO
[code]
;OPTIMIZACION DE SCRIPT INICIA
#NoEnv
#MaxHotkeysPerInterval 99000000
#HotkeyInterval 99000000
#KeyHistory 0
#SingleInstance, Force
ListLines Off
Process, Priority, , A
SetBatchLines, -1
SetKeyDelay, -1, -1
SetMouseDelay, -1
SetDefaultMouseSpeed, 0
SetWinDelay, -1
SetControlDelay, -1
SendMode Input
;OPTIMIZACION DE SCRIPT TERMINA
class mantenerTecla{
;CREAMOS UN OBJETO PARA FACILITAR EL USO DEL SCRIPT
encendido:=false ;ESTADO DEL SCRIPT
tecla:="" ;TECLA A ENVIAR
espera:=0 ;TIEMPO DE ESPERA
repetir(){
;METODO repetir, MANTIENE PRESIONADA LA TECLA DEFINIDA CADA CIERTO TIEMPO
this.encendido:=true ;SCRIPT ENCENDIDO
while(this.encendido){
;MIENTRAS ESTÉ ENCENDIDO
if !IsObject(this.tecla) ;SI NO ES UN ARRAY
SendInput, % "{blind}{" this.tecla " DownR}" ;MANTENER Y ENVIAR TECLA
else ;SI ES UN ARRAY
Loop, % this.tecla.MaxIndex(){ ;POR CADA INDICE
SendInput, % "{blind}{" this.tecla[A_Index] " DownR}" ;MANTENER Y ENVIAR TECLA
sleep, % this.espera ;ESPERAR CIERTO TIEMPO
} ;REPITE
sleep, % this.espera ;ESPERAR CIERTO TIEMPO
} ;REPITE
}
cancelar(){
;METODO cancelar, SOLO APAGA EL SCRIPT
this.encendido:=false ;ESTADO DE SCRIPT APAGADO
if !IsObject(this.tecla) ;SI NO ES ARRAY
while GetKeyState(this.tecla[A_Index],"p") ;MIENTRAS ESTE PRESIONADA LA TECLA
SendInput, % "{" this.tecla " up}" ;SOLTAR TECLA
else ;SI ES UN ARRAY
Loop, % this.tecla.MaxIndex(){ ;POR CADA TECLA
while GetKeyState(this.tecla[A_Index],"p") ;MIENTRAS ESTE PRESIONADA
SendInput, % "{" this.tecla[A_Index] " up}" ;SOLTARLA
} ;REPETIR
}
__New(t,d:=1){
;AL CREAR EL OBJETO RECIBE TECLA "t" Y TIEMPO DE ESPERA "d"
this.tecla:=t ;ASIGNAMOS LA ENTREADA DE TECLA
this.espera:=d ;ASIGNAMOS LA ENTREADA DE ESPERA
}
} ;TERMINA DEFINICIÓN DE OBJETO
clickIzq_w:=new mantenerTecla(["lbutton", "w"])
;CREAMOS "CLICK IZQUIERDO W"
hola_ejemplo:=new mantenerTecla(["h","o","l","a"], 220)
;CREAMOS "hola" COMO EJEMPLO
letraZsola:=new mantenerTecla("z", 11)
;CREAMOS LETRA Z COMO EJEMPLO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;
;RECORDAR QUE LOS PARAMETROS SON UNA TECLA O UN ARRAY
;DE TECLAS Y EL TIEMPO SI ES QUE SE QUIERE MODIFICAR
;DEL PREDETERMINADO QUE ES "1"
;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
F1:: ;CON F1 REPETIREMOS CLICK IZQ Y W
clickIzq_w.repetir()
Return
F2:: ;CON F2 SOLTAERMOS CLICK IZQ Y W
clickIzq_w.cancelar()
Return
1:: ;CON 1 REPETIREMOS "hola"
hola_ejemplo.repetir()
Return
2:: ;CON F2 SOLTAERMOS "hola"
hola_ejemplo.cancelar()
Return
q:: ;CON q REPETIREMOS Z
letraZsola.repetir()
Return
w:: ;CON w SOLTAERMOS Z
letraZsola.cancelar()
Return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;IMPORTANTE !!!! PARA LOS HOTKEYS NO USES MODIFICADORES
;, PARA EVITAR ERRORES, ES UNA SOLUCIÓN BÁSICA PERO
;FUNCIONAL QUE PUEDE AYUDARTE. NO CREES OBJETOS CON
;LAS MISMAS TECLAS QUE LAS ACTIVARAS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[/code]