Bonjour,
je développe une petite application qui me permet d'installer des applications de manière silencieuse après avoir lu les paramètres stockés dans un fichier XML.
Mon application :
Main
Je remplis dynamiquement un simple listview
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void MainFormLoad(object sender, EventArgs e) { foreach (string subfolder in Directory.GetDirectories(".\\silent")) { ListViewItem it=new ListViewItem(); it.SubItems[0].Text= Path.GetFileName(subfolder).ToString(); it.SubItems.Add("En attente..."); liste.Items.Add(it).Checked = true; } }
Bouton Install
- J'initialise un tableau avec la liste des applications à installer
- Je lis les paramètres d'install renseignés dans un fichier xml
- je lance l'install
- En suivant je souhaite supprimer la première application de ma liste pour lancer l'application suivante, UNIQUEMENT lorsque l'application précédente a été supprimée. Pour cela j'ai besoin d'accéder au tableau ins[] déclaré dans le code suivant, mais je n'y arrive pas
Voilou, je veux donc accéder au tableau ins[].
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
36
37 void Button1Click(object sender, EventArgs e) { // on récupère le type d'os string os = GetOperatingSystemName()+Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"); // on récupère la liste des applications à installer String[] ins = new string[liste.CheckedItems.Count]; int index = 0; foreach (ListViewItem lvi in liste.Items) { if (lvi.Checked == true) { ins[index] = lvi.Text; index++; } } // on récupère les informations d'installation XPathDocument doc = new XPathDocument("silent\\" + ins[0] + "\\si.xml"); XPathNavigator nav = doc.CreateNavigator(); XPathNodeIterator iter = nav.Select("si/"+os); iter.MoveNext(); // récupération des paramètres d'install string exec = iter.Current.SelectSingleNode("exec").Value; // on lance l'install Process install = Process.Start("silent\\" + ins[0] + "\\" + exec); install.EnableRaisingEvents = true; install.Exited += new EventHandler(nextapp); } void nextapp(object sender, EventArgs e) { // ici accès au tableau ins }
Je démarre en C# et je suis un peu perdu du coup vu qu'à ce que j'ai compris il n'y a pas vraiment de variable globale dans ce langage.
D'ailleurs si quelqu'un veut bien me préciser cette histoire de variables globales je lui en serais reconnaissant.
Merci d'avance,
Flexii
Partager