Bonjour,
J'ai pour projet personnel de faire un lanceur de programme sous WinDev 21, mais je suis actuellement bloqué à une certaine partie depuis maintenant plusieurs jours. Je précise que je suis très débutant en WinDev et en programmation en général.
Merci d'avance à tous ceux qui m'aiguilleront vers la solution.

Le problème auquel je fais face concerne la temporisation à la fin de mon code et la saisie de l'intervalle au début.
Mon but est que lors de la saisie de l'intervalle par l'utilisateur en format HHMMSS, si il rentre par exemple "000003" la temporisation sera de 3 seconde avant la réexécution du Shell exécute puis de la temporisation à nouveau et ainsi de suite indéfiniment, si il rentre "001232" la temporisation sera de 12 minutes et 32 secondes, si il rentre "012312" la temporisation sera de 1 heures 23 minutes et 12 secondes.

Cependant, lorsque j'entre dans la saisie de l'intervalle "000003" le Shell exécute ne se fait pas toutes les 3 secondes mais par défaut environ toutes les 8 secondes et je ne comprends pas pourquoi.

Voici mon code qui se trouve dans un bouton sous WinDev 21 :

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
 
sRépertoire est une chaîne
sRépertoire = fSélecteur("Ce PC", "", "", ".")
 
LIB_cheminfichier =  sRépertoire
SI sRépertoire <> "" ALORS
	LIB_cheminfichier =  sRépertoire
SINON
	LIB_cheminfichier = "Aucun fichier"
FIN
 
dAtedepart est une Date = Saisie("Veuillez sélectionner la date de départ", dAtedepart)
hEuredepart est une Heure = Saisie("Veuillez sélectionner l'heure de départ", hEuredepart)
nIntervalle est une chaîne = Saisie("Veuillez saisir l'intervalle sous forme  : HHMMSS", nIntervalle)
DateHeureDepart est une DateHeure
 
SI dAtedepart = Null ET hEuredepart = Null ALORS
	DateHeureDepart = DateHeureSys()
SINON SI dAtedepart = Null ALORS
	dAtedepart = DateSys()
FIN
 
TANTQUE 2>1
         tempsattente est un entier = 0
	SI Taille(nIntervalle) = 6 ALORS
		nIntervalle = Gauche(nIntervalle, 2) + ":" + Milieu(nIntervalle, 3, 4) + ":" + Droite(nIntervalle, 2)
	FIN
 
	SI Val(Gauche(nIntervalle, 2)) > 0 ALORS
		tempsattente += Val(Gauche(nIntervalle, 2)) * 3600 // heures --> secondes
	FIN
 
	SI Val(Milieu(nIntervalle, 3, 4)) > 0 ALORS
		tempsattente += Val(Milieu(nIntervalle, 3, 4)) * 60 // minutes --> secondes
	FIN
 
	SI Val(Droite(nIntervalle, 2)) > 0 ALORS 
		tempsattente += Val(Droite(nIntervalle, 2)) // secondes
	FIN
 
	SI Val(nIntervalle) < 1000 ALORS
		tempsattente = Val(nIntervalle)
	SINON
		tempsattente = Val(nIntervalle) / 1000
	FIN
        tempsattente = tempsattente * 1000 // secondes --> millisecondes
 
        ShellExecute(sRépertoire)
        Temporisation(tempsattente)
FIN