// arrêter tous les processus private void stopAllProcess() { foreach (ProcessNode pN in listProcess) { pN.process.Kill(); lvProcess.Items.Remove(pN.processViewItem); } // initialiser les compteurs ProcessNode.setBallonCount(0); ProcessNode.setPremierCount(0); listProcess = new LinkedList <ProcessNode>(); setViewCounters(0, 0); }
// mise à jour la listView lorsque l'utilisateur arrête un fênetre private void checkClosedProcess() { foreach (ProcessNode pN in listProcess) { if (pN.process.HasExited) { lvProcess.Items.Remove(pN.processViewItem); // mise à jour les compteurs correspondants if (pN.name == "ballon") { ProcessNode.setBallonCount(ProcessNode.getBallonCount() - 1); } else { ProcessNode.setPremierCount(ProcessNode.getPremierCount() - 1); } setViewCounters(ProcessNode.getBallonCount(), ProcessNode.getPremierCount()); listProcess.Remove(pN); break; } } }
// fonction qui va être appelé lorsque l'utilisateur clique stop last process private void StopLastProcess_Click(object sender, RoutedEventArgs e) { if (listProcess.Count <= 0) { MessageBox.Show("No running process", "Alert", MessageBoxButton.OK, MessageBoxImage.Information); } else { listProcess.Last().process.Kill(); lvProcess.Items.Remove(listProcess.Last().processViewItem); if (listProcess.Last().name == "ballon") { ProcessNode.setBallonCount(ProcessNode.getBallonCount() - 1); } else { ProcessNode.setPremierCount(ProcessNode.getPremierCount() - 1); } setViewCounters(ProcessNode.getBallonCount(), ProcessNode.getPremierCount()); listProcess.RemoveLast(); } }
// fonction qui va être appelé lorsque l'utilisateur clique stop last premier private void StopLastPremier_Click(object sender, RoutedEventArgs e) { if (listProcess.Count <= 0 || ProcessNode.getPremierCount() <= 0) { MessageBox.Show("No running process for premier.exe", "Alert", MessageBoxButton.OK, MessageBoxImage.Information); } else { for (int i = listProcess.Count - 1; i >= 0; i--) { if (listProcess.ElementAt(i).name == "premier") { // obtenir le dernier élément de type premier de la liste listProcess ProcessNode toRemove = listProcess.ElementAt(i); toRemove.process.Kill(); lvProcess.Items.Remove(toRemove.processViewItem); ProcessNode.setPremierCount(ProcessNode.getPremierCount() - 1); setViewCounters(ProcessNode.getBallonCount(), ProcessNode.getPremierCount()); listProcess.Remove(toRemove); break; } } } }