Ayuda para hacer funcionar settimer+ click en una ventana minimizada

Las preguntas relacionadas con la automatización de juegos van aquí.

Moderator: Flipeador

dani484
Posts: 3
Joined: 07 May 2020, 06:14

Ayuda para hacer funcionar settimer+ click en una ventana minimizada

08 May 2020, 08:33

Hola buenas a todos, espero podais ayudarme, les dejo el codigo que tengo para un juego en el cual necesito que cada 5 segundos me tire una habilidad la cual hay que clickear, en una ventana especifica habiendo antes marcado su ubicación.
En sí el codigo funciona, el problema viene, cuando intento minimizar la ventana e irme a otra ventana del juego o de windows, el script hace el movimiento y click en todos lados, me gustaría ver si alguien puede hacer que solo funcione en la ventana donde lo ejecute o marque, gracias de antemano.

Code: Select all

SendMode Input 
#maxhotkeysperinterval 100000 

INSERT:: ;Toma la ID de la ventana a variable
WinGet, active_id, ID, A
Return

ScreenX := 0 
ScreenY := 0 
 
FirstDevoX :=0 
FirstDevoY := 0 

$HOME:: 
{ 
  WinGetActiveStats, win_title, ScreenX, ScreenY, winx, winy 
  ScreenX := (ScreenX/2) 
  ScreenY := (ScreenY/2) 
} 
return 
 
$DELETE:: 
{ 
  MouseGetPos, FirstDevoX, FirstDevoY 
} 
return 

PgUp:: ; tecla para iniciar el script
if autoservis = 1
{
autoservis = 0
	ControlSend,, {F4}, ahk_id %active_id% ;en F4 tecla con uno de los dos weapon iguales
}
Else
{
autoservis = 1
gosub, provoke
Settimer, provoke, 5000
}
return

provoke:
loop, 2
{ 
  MouseMove, FirstDevoX, FirstDevoY 
  send {r} 
  sleep 50 
  click 
  sleep 5 
  MouseMove, ScreenX, ScreenY 
  sleep 10 
} 
return 
dani484
Posts: 3
Joined: 07 May 2020, 06:14

Re: Ayuda para hacer funcionar settimer+ click en una ventana minimizada

08 May 2020, 08:52

w0z wrote:
08 May 2020, 08:49
puedes usar ControlClick en vez de click
https://www.autohotkey.com/docs/commands/ControlClick.htm
Pero en la variable "provoke" deberia cambiar tambien el MouseMove x ControlMove y el Send x ControlSend, y añadirle que solo funcione en ahk_id %active_id% , cierto?

PD: He cambiado lo que me dijiste y añadido lo que he dicho y sigue sin reconocerme la ventana, y cuando minimizo quiere hacer el click y todo en otra ventana, creo que debo cambiar algo más del codigo.
w0z
Posts: 230
Joined: 19 Jun 2014, 08:21

Re: Ayuda para hacer funcionar settimer+ click en una ventana minimizada

08 May 2020, 10:31

Trata poniendo SetControlDelay -1
despues de provoke, para que funcione con los ControlClick, ControlSend, etc.

Code: Select all

provoke:
SetControlDelay -1
loop, 2
{ 
  MouseMove, FirstDevoX, FirstDevoY 
  send {r} 
  sleep 50 
  click 
  sleep 5 
  MouseMove, ScreenX, ScreenY 
  sleep 10 
}
y agregale esto tambien

Code: Select all

SendMode Input 
#maxhotkeysperinterval 100000 
SetTitleMatchMode, 2
DetectHiddenWindows, On
If I was helpful consider Donate me. :beer: , plz :D
dani484
Posts: 3
Joined: 07 May 2020, 06:14

Re: Ayuda para hacer funcionar settimer+ click en una ventana minimizada

08 May 2020, 12:12

@w0z He intentado lo que me dijistes, pero cuando minimizo no realiza la accion, solo funciona en la pantalla activa, te dejo el codigo como lo dejé, pero creo que esta fallando algo del Winget.
Las acciones que realizo cuando abro el exe como admin son: 1º INSERT (Para marcar la ventana donde quiero que se use), 2º DELETE (Para marcar la posición donde va a realizar la acción), 3º HOME (Para coger los movimientos de la ventana activa, QUIZAS EL FOCO DEL PROBLEMA) y 4º PgUp (Para iniciar el script automatico). Gracias por toda la ayuda y espero sepas como solucionarlo con algo más de info.

Code: Select all

INSERT:: ;Toma la ID de la ventana a variable
WinGet, active_id, ID, A
Return

SendMode Input 
#maxhotkeysperinterval 100000 
SetTitleMatchMode, 2
DetectHiddenWindows, On

ScreenX := 0 
ScreenY := 0 
 
FirstDevoX :=0 
FirstDevoY := 0 

 

 
$HOME:: 
{ 
  WinGetActiveStats, win_title, ScreenX, ScreenY, winx, winy 
  ScreenX := (ScreenX/2) 
  ScreenY := (ScreenY/2) 
} 
return 
 
$DELETE:: 
{ 
  MouseGetPos, FirstDevoX, FirstDevoY 
} 
return 

PgUp:: ; tecla para iniciar el script
if autoservis = 1
{
autoservis = 0
	ControlSend,, {F4}, ahk_id %active_id% ;en F4 tecla con uno de los dos weapon iguales
}
Else
{
autoservis = 1
gosub, provoke
Settimer, provoke, 5000
}
return

provoke:
SetControlDelay -1
loop, 2
{ 
  ControlMove,, FirstDevoX, FirstDevoY,,, ahk_id %active_id%
  ControlSend,, {r}, ahk_id %active_id% 
  sleep 50 
  ControlClick,, ahk_id %active_id%
  sleep 5 
  ControlMove,, ScreenX, ScreenY,,, ahk_id %active_id%
  sleep 10 
} 
return 




$END::Pause, Toggle 
w0z
Posts: 230
Joined: 19 Jun 2014, 08:21

Re: Ayuda para hacer funcionar settimer+ click en una ventana minimizada

11 May 2020, 12:24

Podria ser que tu juego no soporta lo que quieras hacer osea minimizado.
algunos topics donde se meciona sobre juegos.
https://www.autohotkey.com/docs/FAQ.htm#games
https://www.autohotkey.com/boards/viewtopic.php?t=11084
If I was helpful consider Donate me. :beer: , plz :D

Return to “Automatización de Juegos”

Who is online

Users browsing this forum: No registered users and 4 guests