Página 1 de 1
Como interactuar con una ventana.
Publicado: 04 Abr 2011, 05:06
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.
Re: Como interactuar con una ventana.
Publicado: 04 Abr 2011, 09:01
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).
Re: Como interactuar con una ventana.
Publicado: 04 Abr 2011, 09:54
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. )
Re: Como interactuar con una ventana.
Publicado: 05 Abr 2011, 07:59
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
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...