Bonjour à tous,

J'ai créé une application qui envoie des emails avec pièces jointes à une dizaine de destinataires différents (chaque destinataire a 1 ou plusieurs pièces jointes).

J'ai créé une fenêtre dans laquelle l'utilisateur sélectionne quelle pièce jointe doit être envoyée à quel destinataire (certains ont toutes les pièces jointes, certains n'en n'ont qu'une etc.)

Lorsqu'on clique sur le bouton "envoyer", les emails sont envoyées l'un après l'autre, et j'utilise JaugeEmail pour voir la progression de l'envoi (la jauge apparaît dans la barre de message en bas de la fenetre).

Ca marche très bien au développement, sous Windows Seven. Mais sous Windows XP, pour une raison qui m'échappe complètement (j'ai essayé sur deux postes différents), l'envoi du premier mail commence, la jauge arrive à 40% ou 60% (ça dépend) et là la fenêtre se fige, le pointeur de la souris devient un sablier. Plus d'affichage, j'attends, j'attends, et au final j'arrive à la fin du traitement, tous les emails ont été envoyés mais la jauge n'a pas fonctionné ...

Je vous mets un bout de mon code :

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
 
// Dest_Temp contient la liste des destinataires
//
// emailTotal et emailCourant sont des variables globales utilisées pour la jauge
emailTotal = HNbEnr(Dest_Temp,hEtatActif)
POUR i = 1 _A_ HNbEnr(Dest_Temp,hEtatActif)
	emailCourant = i
	HLit(Dest_Temp, i)
	MonMessage.Expediteur = "xxxxx"
	MonMessage.AdresseExpéditeur = "xxxx"
	MonMessage.Sujet = "xxxxxxx"
	Ajoute(MonMessage.Destinataire, Dest_Temp.admail)
	EmailImporteHTML(MonMessage,messagedefaut,fRepEnCours())
        // Boucle qui permet d'ajouter les pièces jointes pour chaque destinataire
	POUR TOUT chsite DE table_site
		SI {"Dest_Temp."+chsite} ALORS
			ResListeFichier = fListeFichier(repTemp+"\"+Gauche(chsite,2)+"*.xls")
			//EmailChargeFichierAttaché (MonMessage, repTEmp+)
			POUR TOUTE CHAINE UnFichier DE ResListeFichier SEPAREE PAR RC
				EmailChargeFichierAttaché (MonMessage, UnFichier)
			FIN
		FIN
	FIN
	EmailJauge(GestionProgression)
	SI EmailEnvoieMessage(sessionMail,MonMessage)=Faux ALORS
		Info("Echec de l'envoi du message à "+Dest_Temp.admail,errInfo)
	FIN
	EmailRAZ(MonMessage)
FIN
Et la procédure GestionProgression pour la jauge :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
PROCEDURE GestionProgression(TotalOctet, TotalTransmis)
Jauge(TotalTransmis, TotalOctet,"Envoi de l'email "+ emailCourant + "/"+emailTotal+" en cours")
Je répète que ça marche très bien sur Windows Seven, j'aimerais bien savoir si vous avez une idée de ce qui pourrait figer ma fenêtre sous XP ... c'est pas très grave puisqu'au final mes emails arrivent, mais j'aimerais bien avoir quelque chose de pro !

Merci d'avance à ceux qui voudront bien mettre le nez là-dedans !

PS : je débute en Windev donc si quelque chose vous choque dans mon code, n'hésitez pas à me remettre dans le droit chemin ! Merci encore.