irraxen33
Messages postés15Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention21 avril 2005
-
7 sept. 2004 à 17:02
irraxen33
Messages postés15Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention21 avril 2005
-
8 sept. 2004 à 10:52
Voila j'ai une appliqtion en C (enfin, un batch C) et je voudrais faire une interface graphique pour la lancer.
Voila comment ca ce passe sans l'interface graph. :
Le batch est lancer à partir de l'invite de commande ("cmd").
Et donc je peux ainsi voir sont évolution avec les traces dans la boite de commande.
Avec l'interface graphique developpé avec Swing :
Jutilise la commande :
runtime.getruntime().exec("nomfic.exe");
je n'est pas la boite de commande, alors que je voudrais l'afficher. Et je vois pas comment utiliser le process.
le prog ne renvoie aucune exception, mais il tombe dans une boucle infini et je n'arrive pas a la supprimer.
voila un exemple de ce que j'ai fait :
void bt_lance_actionPerformed(ActionEvent e) {
System.out.println("coucou");
try
{
Runtime run = Runtime.getRuntime();
Process p = run.exec("cmd");
// Pour lire le process
InputStream in = p.getInputStream();
// Pour ecrire dans la sortie
File file = new File("sortie_batch.txt");
FileOutputStream out = new FileOutputStream(file);
int b = in.read();
while (b!=-1) {
out.write(b);
b=in.read();
System.out.print(String.valueOf(b));
}
out.close();
in.close();
System.out.println("coucou2");
}
catch(IOException io)
{
System.out.println("Impossible d'execter le programme");
}
}
Merci pour toute aide que vous m'apporterez
Pouet !!!!!!!!!!!
irraxen33
Messages postés15Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention21 avril 2005 8 sept. 2004 à 09:23
merci pour le exit wargre
mais est ce que quelqu'un pourrai m'indiquer un moyen d'afficher la boite de commande
ou autrement un moyen de récupérer le trace complet du batch c
ou autrement de faire une barre de défilement pour dire que le programme est en cours ????
wargre
Messages postés649Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 9 septembre 20047 8 sept. 2004 à 10:25
ca ca depend de ton appli il faut que tu recupere des données du Process (p.getInputStream()) et que tu les traites.
note bien que pour l'instant ton process ne fait rien. (c'est juste la console de commmande)
pour lui faire faire qqchose, il faut que tu lui envoie ton instruction
p.getOutputStream().write(instruction...);
avec instruction genre "cd ....\nlanceProg.bat\n"
irraxen33
Messages postés15Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention21 avril 2005 8 sept. 2004 à 10:52
merci wargre
bon j'ai trouver une solution pour ceux que ca interresse ....
void bt_lance_actionPerformed(ActionEvent e) {
System.out.println("coucou");
try
{
Runtime run = Runtime.getRuntime();
Process p = run.exec("Essai.exe");
// Pour lire le process
InputStream in = p.getInputStream();
// Pour ecrire dans la sortie
File file = new File("sortie_batch.txt");
FileOutputStream out = new FileOutputStream(file);
System.out.println("b avant = "+in.available());
int tmp = in.read();
System.out.println("tmp = "+tmp);
int b = in.available();
System.out.println("b = "+b);
for (int i=0; i<b+1; i++){
out.write(tmp);
System.out.print(String.valueOf(tmp)+"\n");
tmp=in.read();
}
p.destroy();
out.close();
in.close();