Como interactuar con una ventana.

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
abyss
Mensajes: 2
Registrado: 04 Abr 2011, 05:01

Como interactuar con una ventana.

Mensaje por abyss »

Bueh, buenas.

Quiero hacer un bot para cuando esté durmiendo, seguir haciendo cosas. En sí lo unico que debe hacer el script es clicar por la pantalla en distintas partes y hacer un keysend o como se llame el comando cada tanto tiempo. Pero lo importante, lo que más me interesa es... como decirlo... el raton tiene que encontrar en la pantalla un objetivo al que clicarle, con un nombre determinado que habria que asignar al script...

Con este mensaje no os pido que me hagais el codigo, solo que me deis ideas de como podria hacer cada funcion de esas... Realmente a mi no se me ocurre nada.
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Como interactuar con una ventana.

Mensaje por Ximorro »

¿Pero qué son "cosas" en "pinchar cosas"?

Si se trata de controles de ventanas windows (botones, cajas te texto, etc...) no será muy difícil.

Si es de controles en páginas web yo no controlo mucho, pero si la página se deja tampoco hay problema (y suele dejarse, el problema principal es cuando hay applets java o flash).

Si es un juego y hay que buscar objetos que pinta el juego la cosa es más complicada, ahí AutoIt lo que tiene son funciones para buscar colores de pixeles, con lo que no es muy fácil (no se le puede decir "recoge la poción", claro, la poción serán unos píxeles en pantalla y habrá que apañárselas para identificarla a base de mirar los colores).
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
abyss
Mensajes: 2
Registrado: 04 Abr 2011, 05:01

Re: Como interactuar con una ventana.

Mensaje por abyss »

Pues como bien dices es para un juego. Pero el objetivo que tengo es para conseguir un objeto en concreto ( si, solo uno. ) y en un mismo lugar, es decir, el pj no se mueve de ahi. Visto asi solo tendria que sacar los pixeles del bicho en cuestión y ya está? D: ( El juego ya tiene función de autoloot, o recoger las cosas automaticamente, como lo querais llamar. )
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Como interactuar con una ventana.

Mensaje por Ximorro »

Bueno, si se trata de clicar siempre en la misma posición podrías averiguar las coordenadas (aunque sea por ensayo y error) y ponerlo a pinchar.
La función para eso es MouseClick:
MouseClick ("primary", $x, $y)

En vez de "primary" puedes usar "secondary" para el botón secundario. Por supuesto $x e $y tienen las coordenadas donde pinchar.

Para pulsar por ejemplo cada segundo pon un Delay(1000) antes o después de cada clic.

Y también sería bueno poner un mecanismo para cerrar el programa desde el teclado, usando un hotkey que no use el juego, por ejemplo si usas MAY-ESC:
HotKeySet("+{ESC}", "_Salir")

Y luego la función salir simplemente cierra el programa

Código: Seleccionar todo

Func _Salir()
     Exit
EndFunc
Lo de buscar el objeto por color puede ser bastante más complicado, dependiendo de si se usa ese color mucho en otras partes del juego. Al menos como dices que está siempre en la misma posición se podría restringir la zona a buscar. En cualquier caso hay juegos que bloquean el acceso a su pantalla y no puedes ver los píxeles. En uno que probé siempre me devolvía el color negro...
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder