Bonjour à tous,
Je suis en train de faire un projet pour mon stage et je suis un peu bloqué.
Mon programme ouvre 4x iexplore et je cherche ensuite à fermer ces 4 fenêtres précisément.
Voici mon ptit bout de code :
Lorsque je clic sur le bouton3 il ne me ferme qu'une seule fenetre (la dernière ouverte) je comprend pas pourquoi. Pourtant "process.Length" vaut bien 4.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 private void button1_Click(object sender, EventArgs e) { prolink.StartInfo.FileName = "iexplore"; prolink.StartInfo.Arguments = linkurl; prolink.Start(); profb.StartInfo.FileName = "iexplore"; profb.StartInfo.Arguments = fburl; profb.Start(); protw.StartInfo.FileName = "iexplore"; protw.StartInfo.Arguments = twurl; protw.Start(); pronet.StartInfo.FileName = "iexplore"; pronet.StartInfo.Arguments = neturl; pronet.Start(); private void button3_Click(object sender, EventArgs e) { KillProcess("iexplore"); } private void KillProcess(string processName) { Process[] process = Process.GetProcessesByName(processName); for (int i = 0; i < process.Length; i++) { Process.GetProcessById(process[i].Id).CloseMainWindow(); } }
Donc il passe 3x dans le for sans rien faire et la 4eme fois il ferme une fenêtre.
Je dois donc cliquer 4x sur le bouton3 pour fermer toutes les fenetres.
En fait pour plus de précision je cherche le moyen de tuer le processus avec son ID unique. J'ai essayé de récupérer l'id des mes 4 fenêtres IE lors de leurs lancement avec par ex "prolink.Id" mais je ne trouve pas le moyen de faire le "CloseMainWindow()" d'une fenêtre avec son id.
Si je remplace "CloseMainWindow()" par "Kill()", il me ferme tous les processus iexplore mais ça ne m'arrange pas parce que si j'ai ouvert des autres pages iexplore, ça les fermes tout alors que je ne veux que fermer les 4 ouvertes par le programme ...
ça parait compliqué, j'espère que je n'ai pas été trop flou dans ma description.
D'avance merci.
Partager