Salut a tous,
j'ai crée une application WinForm. elle permet de déclencher des macro (iMacros) et parse les script des macro pour y modifier cetaines informations (login et mot de passe entre autre).
j'ai un fichier XML nommé macros.xml qui contient les paramètres de mes macros.
ce fichier là je le manipule sans problèmes (ajout, suppressions, recherches, etc...).
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 <?xml version="1.0" encoding="utf-8"?> <macros> <MaxID>7</MaxID> <macro ID="1"> <label>Orange Mobile</label> <macroName>orange_mobile.iim</macroName> <loops>12</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> <macro ID="2"> <label>orange mobile 2</label> <macroName>orange_mobile_2.iim</macroName> <loops>12</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> <macro ID="3"> <label>bouygues</label> <macroName>bouygues.iim</macroName> <loops>3</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> <macro ID="4"> <label>orange mobile 3</label> <macroName>orange mobile 3.iim</macroName> <loops>12</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> <macro ID="5"> <label>sfr mobile</label> <macroName>sfr mobile 2010.iim</macroName> <loops>1</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> <macro ID="6"> <label>SFR Mobile test 01</label> <macroName>SFR mobile Test 02.iim</macroName> <loops>1</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> <macro ID="7"> <label>sfr</label> <macroName>SFR.iim</macroName> <loops>1</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> </macros>
mais mon applicatio doit être capable d'executer ces macros à un moment précis planifié par l'utilisateur. les informations concernant ces planification sont contenues dans le fichier events.xml.
comme vous pouvez le voir, je stock dans chaque événement les paramètres des macros à exécuter au moment choisi. le nombre de macros est donc variable.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 <?xml version="1.0" encoding="utf-8" ?> <events> <maxId>1</maxId> <event ID="0"> <nbMacros>2</nbMacros> <label>eventTest1</label> <dateEvent>03/03/2010 16:17:20</dateEvent> <macros> <macro ID="2"> <label>orange mobile 2</label> <macroName>orange_mobile_2.iim</macroName> <loops>12</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> <macro ID="3"> <label>bouygues</label> <macroName>bouygues.iim</macroName> <loops>3</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> </macros> </event> <event ID="2"> <nbMacros>3</nbMacros> <label>eventTest2</label> <dateEvent>04/03/2010 15:03:20</dateEvent> <macros> <macro ID="4"> <label>orange mobile 3</label> <macroName>orange mobile 3.iim</macroName> <loops>12</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> <macro ID="3"> <label>bouygues</label> <macroName>bouygues.iim</macroName> <loops>3</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> <macro ID="6"> <label>SFR Mobile test 01</label> <macroName>SFR mobile Test 02.iim</macroName> <loops>1</loops> <login>*****</login> <password>*****</password> <downloadFolder>C:\Users\nightcyborg\Desktop</downloadFolder> </macro> </macros> </event> </events>
j'ai crée une class Event, celle-ci stock les macros dans un list de type Macro (que j'ai crée également).
quand je récupére les Event je voudrai récupérer aussi les macros associées, mais je n'y parviens pas.
voici ma méthode permettant de retourner la list des Event :
merci de m'avoir lu, j'espère que vous pourrez m'aider.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 public static List<Event> listAllEvents() { Event mEvent; XPathDocument xDoc = new XPathDocument("event.xml"); XPathNavigator xNav, xNav2; XPathNodeIterator xNodes, xNodes2; xNav = xDoc.CreateNavigator(); expr = "//event"; xNodes = xNav.Select(xNav.Compile(expr)); if (xNodes.Count != 0) { lEvents = new List<Event>(); while (xNodes.MoveNext()) { string txt = ""; mEvent = new Event(); txt += "\r\n" + xNodes.Current.GetAttribute("ID", ""); mEvent.ID = int.Parse(xNodes.Current.GetAttribute("ID", "")); xNodes.Current.MoveToFirstChild(); txt += "\r\n" + xNodes.Current.Value; int nbm = int.Parse(xNodes.Current.Value); xNodes.Current.MoveToNext(); txt += "\r\n" + xNodes.Current.Value; mEvent.label = xNodes.Current.Value; xNodes.Current.MoveToNext(); txt += "\r\n" + xNodes.Current.Value; mEvent.dateEvent = DateTime.Parse(xNodes.Current.Value); xNodes.Current.MoveToNext(); int tr = nbm; Macro macro = new Macro(); while (tr > 0) { xNodes.Current.MoveToFirstChild(); txt += "\r\n\r\n\r\n" + xNodes.Current.GetAttribute("ID", ""); xNodes.Current.MoveToFirstChild(); txt += "\r\n" + xNodes.Current.Value; xNodes.Current.MoveToNext(); txt += "\r\n" + xNodes.Current.Value; xNodes.Current.MoveToNext(); txt += "\r\n" + xNodes.Current.Value; xNodes.Current.MoveToNext(); txt += "\r\n" + xNodes.Current.Value; xNodes.Current.MoveToNext(); txt += "\r\n" + xNodes.Current.Value; tr--; xNodes.Current.MoveToParent(); xNodes.Current.MoveToNext(); } lEvents.Add(mEvent); mEvent = null; } } else { return null; } return lEvents; }
Partager