je suis en train de faire évoluer un logiciel libre : Surface Evolver. C'est un logiciel appliqué à la chimie simulant des nano-surfaces, qui, une fois lancé, affiche une console MS DOS. On y rentre des commandes pour pouvoir afficher la fenetre de simulation ( fenetre graphique ), ou effectuer des operations sur la surface, entre autres.
Le but de mon travail est d'instaurer une interface qui rend l'utilisation de ce logiciel plus convivial.
Mes QUESTIONS sont :
- Peut-on lancer de JAVA un exécutable ( donc ce logiciel ), et peut-on en intercepter les fenetres pour intégrer (par exemple) la fenetre graphique dans l'interface et pour demander à ce que la console ne soit pas visible ?
- Si oui, comment faire ? ( J'ai essayé avec runtime et exec, ca me met aucune erreur mais ca ne me lance pas le programme).
- Et enfin, peut-on communiquer avec le programme lancé pour que ce soit l'interface qui donne les commandes à la console, et non plus l'utilisateur ?
Je vous remercie infiniement pour vos réponses.
PS : le langage source du logiciel est le C. Si je veux utiliser des fonctions du programme existant, il faudrait que j'utilise la JNI. C'est pourquoi j'essaye de trouver une solution alternative pour éviter de reprendre le code.
j'ai pas tester mais je te conseillerais de faire communiquer tes deux programmes (java et msDOs) par socket (je crois que c comme ça que eclipse récupere la console de sortie lors d'un RUN).
pour ce qui est de l'affichage genre fenetre cela risque d'être difficile. Imagine un programme Java ou à l'intérieure on a un tableur Excell.
enfin si tu trouve je suis preneur :D
__________________________
rien ne sert de coder pour coder il suffit de coder à point. La fontaine (ah non c'est pas ça qu'il a dit?)
exec fonctionnera tres bien pour lancer un .exe
Par contre pour interagir par la suite, ça reste vriment très compliqué.
__________________________
Gexti
En fait, je peux lancer n'importe quelle application ( avec runtime et exec ), ça marche, mais dès que l'application est une console ( invite de commandes ), ça ne marche plus.
Il n'y rien qui s'affiche. Le programme est lancé, mais il n'y a rien sur stdOut...