J'ai un processus Java qui s'exécute sur un serveur Windows où je dois lancer un exe de ligne de commande. J'utiliseEst-il possible de capturer une boîte de message contextuelle Windows à l'intérieur d'un programme Java?
Process p = Runtime.getRuntime().exec(command);
OutputStream stdin = p.getOutputStream();
InputStreamstderr = p.getErrorStream();
InputStream stdout = p.getInputStream();
pour exécuter le processus et capturer les flux d'entrée/sortie standard. Le problème que j'ai est l'un des exe que je dois lancer va lancer une boîte de message pop-up qui doit avoir cliqué sur "Ok" avant de finir l'échec.
Mon programme Java s'exécute en arrière-plan de sorte qu'il n'a pas de fenêtre dans laquelle afficher la boîte de message, ce qui signifie que le programme Java se bloque jusqu'à ce que quelqu'un le remarque et le tue dans le Gestionnaire des tâches.
Existe-t-il un moyen de pouvoir détecter ou détecter ces fenêtres pop-up depuis Java?
Où c'est une approche à coup sûr, je penserais longtemps et dur avant de commencer cette route. À toutes fins utiles, l'application cesse d'être une application Java. – Cumbayah
Vraiment vrai. Mais en même temps, la description de l'application semble ne jamais pouvoir être utilisée en dehors d'un environnement Windows. Aussi quand ce code spécifique à la plate-forme est bien encapsulé dans une classe séparée, je le considérerais comme une solution plutôt difficile mais aussi propre. Où Sunoracle n'a pas construit les ponts vers l'OS sous-jacent, vous devez le faire vous-même. – allesblinkt
C'est une idée intéressante. L'application que j'ai est en fait un morceau d'un plus grand système qui doit fonctionner sur n'importe quel type d'OS.Ce problème surgit uniquement sur les serveurs Windows sur lesquels je dois exécuter une telle idée fonctionnerait encore et je pourrais l'ajouter en tant que couche sous l'appel d'exec(). – Sean