Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Recoger información/datos de un videojuego en ejecución

¡Hola! Por aquí estoy otra vez :)

Esta vez es para tratar un tema que parece ser muy complicado, o al menos yo lo veo así. He empezado a desarrollar una aplicación que calcula una serie de datos y muestra información técnica del famoso juego de Minecraft. Será una especie de utilidad que puedan descargar los jugadores.

Sin embargo, me gustaría que mi aplicación, en el caso de que se esté ejecutando el juego, sea capaz de leer algunos datos, es decir, de recibir información del propio juego. ¿Se podría hacer esto sin que mi programa ejecute la aplicación? Es decir, que el juego esté ejecutándose ya, el usuario lance mi aplicación y esta detecte que el juego ya está ejecutándose y haga una escucha.
¿Sería algo así como escuchar un proceso concreto? ¿Es esto posible?
Cosas como por ejemplo, ejecutar un algoritmo o función propia del juego que te devuelva la vida que tiene el personaje en ese momento. ¿Sería también posible pasarle parámetros a ese juego para que se ejecuten dentro de la aplicación?

Con decirme algo de por donde empezar a buscar ya puedo ponerme manos a la obra, llevo un buen rato buscando y no he encontrado nada relevante porque no sé tampoco por donde empezar! He leído sobre los robots de Java pero eso no me serviría demasiado pienso yo porque necesita analizar la pantalla y cosas del estilo, sería algo así como cuando haces una petición a una web con tu programa Java y ella te devuelve información que tú tienes que interpretar para reconocer el HTML, el Javascript, etc etc?

¿Sería también posible de este modo, por ejemplo, en el caso de que yo tenga abierto el Photoshop con una imagen, que el programa me devuelva información con el tipo de archivo o nombre del archivo que he abierto y cosas así? Me sería muy interesante aprender a obtener información de los programas abiertos!

Muchas gracias, un saludo!

marzo 24, 2014 | Unregistered CommenterAlex

Salvo que el programa exponga dicha funcionalidad y provea de alguna interfaz via sockets, jmx, ws etc... NO, no seria posible desde Java.

Solo te quedaría la opción de hacerte un hacker y mediante hooking (http://en.wikipedia.org/wiki/Hooking) atacar la memoria de otros procesos (algo casi imposible con los sistemas operativos actuales, que bloquean estos accesos por seguridad) utilizando C/C++. Este componente lo podrías usar desde java mediante JNI.

Un saludo

marzo 24, 2014 | Unregistered CommenterUnoPorAhi