Je trouvais qu'il n'y avait pas eu assez de questions sur les Process et sur Runtime.exec() cette semaine, alors j'en rajoute une petite couche![]()
Bon, sans plaisanter, voici ma problématique: créer une petite application basique de "contrôle parental", dans le but d'autoriser les enfants à jouer seulement pendant une durée déterminée (pour éviter les abus de jeu).
Voilà le principe:
- l'exécutable du jeu est crypté
- l'application java connait le crédit de temps restant pour le jeu.
- lorsqu'on clique sur le bouton "lancer le jeu" de l'application, elle décrypte l'exécutable, le lance, et commence à compter le temps (en affichant le chronomètre avec le temps restant qui s'écoule)
- si le temps est faible, une popup d'avertissement est affichée!
- si on clique sur "arrêter de jouer", si on ferme l'application java, ou si le temps de jeu est écoulé, on ferme le jeu et on recrypte l'exécutable.
Presque tout fonctionne comme je le veux.
Je crée correctement le process et je jeu se lance bien. Cependant, juste après ça, le débugger m'indique que le process s'est "détaché" de mon application, et je n'ai plus aucun contrôle dessus:
- la méthode destroy() ne fait rien
- la méthode System.exit(0) sur mon application ne marche pas plus.
Je ne peux continuer d'utiliser mon application java, mais je ne peux l'arrêter QUE lorsque le jeu a été quitté normalement.
Donc, ma question est:
- existe-t'il un moyen de garder le contrôle du process du jeu? (et surtout un moyen de l'arrêter depuis mon application java quand je le veux)
- le cas échéant, existe-t'il une commande windows que je pourrais lancer depuis mon application (un équivalent de "kill -9") pour forcer le jeu à s'arrêter brutalement quand mon chronomètre arrive à 0?
PS: si cette application intéresse des gens, je pourrais vous donner les sources... quand elle marchera![]()
Partager