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








Répondre avec citation




Partager