Detecter la fermeture d'un process en JAVA
Bonjour,
Avancement dans mon projet = nouveaux problèmes :aie:
Cette fois-ci on parler de Process 8-)
Je vais commencer par vous montrer mon code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
public static void processDetect() throws IOException
{
String line;
String pidInfo = "";
String proco = "WINWORD.EXE";
Process p = Runtime.getRuntime().exec(System.getenv("windir") + "\\system32\\" + "tasklist.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null)
{
pidInfo += line;
}
input.close();
if(!pidInfo.contains(proco))
{
int rep = JOptionPane.showConfirmDialog(null, "ATTENTION \n\n\n Le programme n'est plus en cours d'exécution.\n Voulez-vous le relancer ?\n\n", "ATTENTION !!", JOptionPane.YES_NO_OPTION);
if (rep == JOptionPane.YES_OPTION)
{
Process test = Runtime.getRuntime().exec("C:\\Program Files (x86)\\Microsoft Office\\Office14\\WINWORD.EXE");
try {
System.out.println("ouvert");
test.waitFor();
pidInfo += proco;
processDetect();
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
else
{
System.out.println("Fermer");
}
}
else
{
System.out.println("Déjà ouvert");
}
} |
Donc Mon code est cencé détecter que word est lancé ou pas.
Ce qui marche:
Quand word n'est pas encore lancé il le détecter et grâce à la boite de dialogue je peux le lancer ou pas. Et si je ferme word il le detecte.
Ce qui marche pas :
Quand word est déjà lancé avant l'éxecution du programme il détecte qu'il est lancé mais quand je ferme word il le détecte pas. [help]
Voilà toute aide sera la bienvenue je suis coincé dans ma logique est un avis extérieur serai pas mal :p.