Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

bare de progression

18 réponses
Avatar
DAN
Bonjour a tous.
dans mon application j'envoie des images par mail et je voudrai faire
défiler une barre de progression pendant le temps de cet envoie.
existe t'il un system de progressbare automatique que je n(aurai qu"a mètre
a visible = true ou visible = false?
D'avance merci de votre aide

8 réponses

1 2
Avatar
DAN
Merci de ton aide mais quand on ne connaît pas la durée du processus,
indiquer à la ProgressBar d'avancer de gauche à droite (comme lors de
l'ouverture de Windows XP)

MyBarre.Style = ProgressBarStyle.Marquee



"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour,

Le step ne peut pas être fixe, ce doit être un ratio de quelque chose,
car le fichiers n'ont pas tous la même taille, il faut faire un règle de
trois entre ce qui est envoyé et le nombre de step possibles, et chaque
octet ou ko ? correspond à x step.
Je ne m'y connais pas assez dans ce genre d'envoi, mais si tu as un moyen
de savoir combien d'octets tu envoies en permanence, c'est à partir de cet
élément qu'il faut définir l'avancement.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:
Merci Joel de ton aide.
J'ai commencé a exploiter ce code qui fonctionne mais mon progressbar
reste figé au moment de SendAsync
j'ai codé mon progressbar de la facon suivante pour ne pas a avoir a
coder un timer:
ProgressBar1.Maximum = 1000
ProgressBar1.Minimum = 0
ProgressBar1.Step = 5
ProgressBar1.Value = 5



qu'en penses tu?


"Joël" a écrit dans le message de groupe de discussion
:
Bonjour

Sa ne change pas c'est toujours New System.Net.Mail.SmtpClient

par contre il faut mettre en place pour le contrôle de l'envoi
SendCompletedCallback
pour gérer erreur et si bien envoyé
sur le lien que j'ai envoyé il y a un exemple en C

' envoi
Dim Message As New MailMessage(Expediteur, Destinataire, LeSujet,
LeMessage)
Dim Client As New SmtpClient("smtp." & ServeurExpediteur)

AddHandler client.SendCompleted, AddressOf SendCompletedCallback
Dim userState As String = "test message1"
client.SendAsync(Message, userState)

' controle l'envoi
Private Shared Sub SendCompletedCallback(ByVal sender As Object, ByVal e
As AsyncCompletedEventArgs)
' Get the unique identifier for this asynchronous operation.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Console.WriteLine("[{0}] Send canceled.", token)
End If
If Not e.[Error] Is Nothing Then
Console.WriteLine("[{0}] {1}", token,
e.[Error].ToString())
Else
Console.WriteLine("Message sent.")
End If

End Sub

Cordialement
Joël



"DAN" a écrit dans le message de groupe de
discussion :
Merci de votre aide .
J'ai essayé l'instruction
oSmtp.SendAsync(oMessage) ' Envoie de façon asynchrone le message


Je ne sais pas dans ce cas par quoi je dois remplacer l'instruction
Dim oSmtp As New System.Net.Mail.SmtpClient



"Joël" a écrit dans le message de groupe de
discussion :
plutôt ce lien
SmtpClient.SendAsync, méthode
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.sendasync.aspx

Cordialement
Joël


"DAN" a écrit dans le message de groupe
de discussion :
Bonjour a tous.
je viens de me rendre compte que c'est certainement l'instruction
oSmtp.Send(oMessage)
envoie de mes mails qui figent ma barre de progression.
donc je cherche un autre moyen pour que l'utilisateur ne pense pas
que mon programme est bloqué alors que c'est l'envoie des mails avec
les photos qui est long.
D'avance merci de votre aide.
PS a moins que qu'il ne faille inclure
oSmtp.Send(oMessage) dans le timer de progression .

"DAN" a écrit dans le message de groupe
de discussion :
Bonjour a tous.
dans mon application j'envoie des images par mail et je voudrai
faire défiler une barre de progression pendant le temps de cet
envoie.
existe t'il un system de progressbare automatique que je n(aurai
qu"a mètre a visible = true ou visible = false?
D'avance merci de votre aide















Avatar
DAN
Excuse moi Joel, j'avais oublié de t'indiquer la derniére ligne
elle ne demande qu'a la progressbar d'avancer de gauche a droite.


MyBarre.Style = ProgressBarStyle.Marquee

si non effectivement rien ne bouge
Malgré cela dans le sendasync le progressbar reste figé
penses tu que je devrai utiliser un timer et de quelle facon?
A+
Dan

e

" a écrit dans le message de groupe de discussion :
#vK$
Bonjour,
ben je ne vois pas comment il pourrai bouger ?
tu met ProgressBar1.Value = 5
faudrait peut être le mettre dans une boucle
for i as Integer=0 to 1000
ProgressBar1.Value = i
next

mais comme on ne sais pas le temps que va prendre le temps de l'envoi
(ProgressBar1.Maximum = 1000 ???)
je pense qu'il vaut mieux mettre la propriété du ProgressBar1.Continuous
ou une image Gif
et de le rendre visible avant
client.SendAsync(Message, userState)

et dans Private Shared Sub SendCompletedCallback(ByVal sender As Object,
ByVal e As AsyncCompletedEventArgs)
le rendre invisible

Cordialement
Joël

"DAN" a écrit dans le message de groupe de
discussion :
Merci Joel de ton aide.
J'ai commencé a exploiter ce code qui fonctionne mais mon progressbar
reste figé au moment de SendAsync
j'ai codé mon progressbar de la facon suivante pour ne pas a avoir a
coder un timer:
ProgressBar1.Maximum = 1000
ProgressBar1.Minimum = 0
ProgressBar1.Step = 5
ProgressBar1.Value = 5



qu'en penses tu?


"Joël" a écrit dans le message de groupe de discussion
:
Bonjour

Sa ne change pas c'est toujours New System.Net.Mail.SmtpClient

par contre il faut mettre en place pour le contrôle de l'envoi
SendCompletedCallback
pour gérer erreur et si bien envoyé
sur le lien que j'ai envoyé il y a un exemple en C

' envoi
Dim Message As New MailMessage(Expediteur, Destinataire, LeSujet,
LeMessage)
Dim Client As New SmtpClient("smtp." & ServeurExpediteur)

AddHandler client.SendCompleted, AddressOf SendCompletedCallback
Dim userState As String = "test message1"
client.SendAsync(Message, userState)

' controle l'envoi
Private Shared Sub SendCompletedCallback(ByVal sender As Object, ByVal e
As AsyncCompletedEventArgs)
' Get the unique identifier for this asynchronous operation.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Console.WriteLine("[{0}] Send canceled.", token)
End If
If Not e.[Error] Is Nothing Then
Console.WriteLine("[{0}] {1}", token,
e.[Error].ToString())
Else
Console.WriteLine("Message sent.")
End If

End Sub

Cordialement
Joël



"DAN" a écrit dans le message de groupe de
discussion :
Merci de votre aide .
J'ai essayé l'instruction
oSmtp.SendAsync(oMessage) ' Envoie de façon asynchrone le message


Je ne sais pas dans ce cas par quoi je dois remplacer l'instruction
Dim oSmtp As New System.Net.Mail.SmtpClient



"Joël" a écrit dans le message de groupe de
discussion :
plutôt ce lien
SmtpClient.SendAsync, méthode
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.sendasync.aspx

Cordialement
Joël


"DAN" a écrit dans le message de groupe
de discussion :
Bonjour a tous.
je viens de me rendre compte que c'est certainement l'instruction
oSmtp.Send(oMessage)
envoie de mes mails qui figent ma barre de progression.
donc je cherche un autre moyen pour que l'utilisateur ne pense pas
que mon programme est bloqué alors que c'est l'envoie des mails avec
les photos qui est long.
D'avance merci de votre aide.
PS a moins que qu'il ne faille inclure
oSmtp.Send(oMessage) dans le timer de progression .

"DAN" a écrit dans le message de groupe
de discussion :
Bonjour a tous.
dans mon application j'envoie des images par mail et je voudrai
faire défiler une barre de progression pendant le temps de cet
envoie.
existe t'il un system de progressbare automatique que je n(aurai
qu"a mètre a visible = true ou visible = false?
D'avance merci de votre aide


Avatar
LE TROLL
Bonjour Dan,

Je ne m'y connais pas assez en vbNet pour te répondre, peux-tu aller
dans le forum vbNet, tu auras davantage de gens qui vont répondre ?

http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/threads

Il faudrait déjà récupérer la taille de l'envoi, mais je crois que tu
n'as pas toutes les informations, la question suivante pourrait être :
- 'Compter les octets d'un envoi mail ?"

A partir de la
step = maximum / nombre octets

for i = 1 to maximum d'octets ' boucle de principe
envoi 1 octet
step = step + 1
progressBar1.Value = step
next i

Il est fort possible qu'il te faille d'autres éléments comme des API
(comme "wLanApi", car envoyer un mail avec une image plus compter ce qui est
envoyé n'est pas courant (tu le vois bien aux réponses ici), il faut que tu
tombes sur quelqu'un qui à l'habitude de manipuler tout ça.
Toutefois, vois dans tes commandes actuelles vois s'il n'y a pas un exemple,
une fonction qui permette d'envoyer les octets un par un (s'ils passent de
ko en ko, suffit de remplacer dans la division "nombre octets" par "nombre
de ko".

En attendant tu peux toujours affichier un nouvelle form vbModal avec le
sablier et un mssage d'attente d'envoi...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:%
Merci de ton aide mais quand on ne connaît pas la durée du processus,
indiquer à la ProgressBar d'avancer de gauche à droite (comme lors de
l'ouverture de Windows XP)

MyBarre.Style = ProgressBarStyle.Marquee



"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour,

Le step ne peut pas être fixe, ce doit être un ratio de quelque chose,
car le fichiers n'ont pas tous la même taille, il faut faire un règle de
trois entre ce qui est envoyé et le nombre de step possibles, et chaque
octet ou ko ? correspond à x step.
Je ne m'y connais pas assez dans ce genre d'envoi, mais si tu as un moyen
de savoir combien d'octets tu envoies en permanence, c'est à partir de
cet élément qu'il faut définir l'avancement.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:
Merci Joel de ton aide.
J'ai commencé a exploiter ce code qui fonctionne mais mon progressbar
reste figé au moment de SendAsync
j'ai codé mon progressbar de la facon suivante pour ne pas a avoir a
coder un timer:
ProgressBar1.Maximum = 1000
ProgressBar1.Minimum = 0
ProgressBar1.Step = 5
ProgressBar1.Value = 5



qu'en penses tu?


"Joël" a écrit dans le message de groupe de
discussion :
Bonjour

Sa ne change pas c'est toujours New System.Net.Mail.SmtpClient

par contre il faut mettre en place pour le contrôle de l'envoi
SendCompletedCallback
pour gérer erreur et si bien envoyé
sur le lien que j'ai envoyé il y a un exemple en C

' envoi
Dim Message As New MailMessage(Expediteur, Destinataire, LeSujet,
LeMessage)
Dim Client As New SmtpClient("smtp." & ServeurExpediteur)

AddHandler client.SendCompleted, AddressOf SendCompletedCallback
Dim userState As String = "test message1"
client.SendAsync(Message, userState)

' controle l'envoi
Private Shared Sub SendCompletedCallback(ByVal sender As Object, ByVal
e As AsyncCompletedEventArgs)
' Get the unique identifier for this asynchronous operation.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Console.WriteLine("[{0}] Send canceled.", token)
End If
If Not e.[Error] Is Nothing Then
Console.WriteLine("[{0}] {1}", token,
e.[Error].ToString())
Else
Console.WriteLine("Message sent.")
End If

End Sub

Cordialement
Joël



"DAN" a écrit dans le message de groupe
de discussion :
Merci de votre aide .
J'ai essayé l'instruction
oSmtp.SendAsync(oMessage) ' Envoie de façon asynchrone le message


Je ne sais pas dans ce cas par quoi je dois remplacer l'instruction
Dim oSmtp As New System.Net.Mail.SmtpClient



"Joël" a écrit dans le message de groupe de
discussion :
plutôt ce lien
SmtpClient.SendAsync, méthode
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.sendasync.aspx

Cordialement
Joël


"DAN" a écrit dans le message de groupe
de discussion :
Bonjour a tous.
je viens de me rendre compte que c'est certainement l'instruction
oSmtp.Send(oMessage)
envoie de mes mails qui figent ma barre de progression.
donc je cherche un autre moyen pour que l'utilisateur ne pense pas
que mon programme est bloqué alors que c'est l'envoie des mails
avec les photos qui est long.
D'avance merci de votre aide.
PS a moins que qu'il ne faille inclure
oSmtp.Send(oMessage) dans le timer de progression .

"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
dans mon application j'envoie des images par mail et je voudrai
faire défiler une barre de progression pendant le temps de cet
envoie.
existe t'il un system de progressbare automatique que je n(aurai
qu"a mètre a visible = true ou visible = false?
D'avance merci de votre aide















Avatar
Joël
Bonjour Dan, Le Troll
Bien sur avec le nombre d'octets connu sa aurait beaucoup plus simple pour
l'utilisation du progressbar
mais apparemment avec System.Net.Mail enfin je n'ai pas trouvé quelque chose
qui renvoi le nombre d'octets
avec SendAsync
c'est pourquoi j'ai opter pour la deuxième solution que j'indiquais
j'envoi mon message en affichant une image GIF animé et un texte
d'informations
une fois le message traité j'affiche le résultat dans le teste d'info et
rend invisible mon image gif
et qui fonctionne parfaitement
voici le code que j'utilise:
' envoi le message
Me.PictureBox1.Visible=True
Me.LabelEnvoi.Text = "Envoi photos en cours... Patientez !"
Me.LabelEnvoi.Refresh()

' envoi en cours
AddHandler EmailClient.SendCompleted, AddressOf
SendCompletedCallback
Dim userState As String ="Mon message"
EmailClient.SendAsync(Message, userState)


une fois le message traité
Private Sub SendCompletedCallback(ByVal sender As Object, ByVal e As
AsyncCompletedEventArgs)
' Obtenir l'identifiant unique pour cette opération asynchrone.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Me.LabelEnvoi.Text = "Email photos annuler !"
End If
If Not e.[Error] Is Nothing Then
Me.LabelEnvoi.Text = e.[Error].ToString
Else
' envoi réussi
Me.LabelEnvoi.Text = "Email photos envoyé avec succès !"
End If

Me.PictureBox1.Visible = False
Me.Cancel_Button.Text = "Ok"
Me.Cursor = Cursors.Default
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
End Sub

Cordialement
Joël


"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour Dan,

Je ne m'y connais pas assez en vbNet pour te répondre, peux-tu aller
dans le forum vbNet, tu auras davantage de gens qui vont répondre ?

http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/threads

Il faudrait déjà récupérer la taille de l'envoi, mais je crois que tu
n'as pas toutes les informations, la question suivante pourrait être :
- 'Compter les octets d'un envoi mail ?"

A partir de la
step = maximum / nombre octets

for i = 1 to maximum d'octets ' boucle de principe
envoi 1 octet
step = step + 1
progressBar1.Value = step
next i

Il est fort possible qu'il te faille d'autres éléments comme des API
(comme "wLanApi", car envoyer un mail avec une image plus compter ce qui
est envoyé n'est pas courant (tu le vois bien aux réponses ici), il faut
que tu tombes sur quelqu'un qui à l'habitude de manipuler tout ça.
Toutefois, vois dans tes commandes actuelles vois s'il n'y a pas un
exemple, une fonction qui permette d'envoyer les octets un par un (s'ils
passent de ko en ko, suffit de remplacer dans la division "nombre octets"
par "nombre de ko".

En attendant tu peux toujours affichier un nouvelle form vbModal avec
le sablier et un mssage d'attente d'envoi...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:%
Merci de ton aide mais quand on ne connaît pas la durée du processus,
indiquer à la ProgressBar d'avancer de gauche à droite (comme lors de
l'ouverture de Windows XP)

MyBarre.Style = ProgressBarStyle.Marquee



"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour,

Le step ne peut pas être fixe, ce doit être un ratio de quelque
chose, car le fichiers n'ont pas tous la même taille, il faut faire un
règle de trois entre ce qui est envoyé et le nombre de step possibles,
et chaque octet ou ko ? correspond à x step.
Je ne m'y connais pas assez dans ce genre d'envoi, mais si tu as un
moyen de savoir combien d'octets tu envoies en permanence, c'est à
partir de cet élément qu'il faut définir l'avancement.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:
Merci Joel de ton aide.
J'ai commencé a exploiter ce code qui fonctionne mais mon progressbar
reste figé au moment de SendAsync
j'ai codé mon progressbar de la facon suivante pour ne pas a avoir a
coder un timer:
ProgressBar1.Maximum = 1000
ProgressBar1.Minimum = 0
ProgressBar1.Step = 5
ProgressBar1.Value = 5



qu'en penses tu?


"Joël" a écrit dans le message de groupe de
discussion :
Bonjour

Sa ne change pas c'est toujours New System.Net.Mail.SmtpClient

par contre il faut mettre en place pour le contrôle de l'envoi
SendCompletedCallback
pour gérer erreur et si bien envoyé
sur le lien que j'ai envoyé il y a un exemple en C

' envoi
Dim Message As New MailMessage(Expediteur, Destinataire, LeSujet,
LeMessage)
Dim Client As New SmtpClient("smtp." & ServeurExpediteur)

AddHandler client.SendCompleted, AddressOf SendCompletedCallback
Dim userState As String = "test message1"
client.SendAsync(Message, userState)

' controle l'envoi
Private Shared Sub SendCompletedCallback(ByVal sender As Object, ByVal
e As AsyncCompletedEventArgs)
' Get the unique identifier for this asynchronous
operation.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Console.WriteLine("[{0}] Send canceled.", token)
End If
If Not e.[Error] Is Nothing Then
Console.WriteLine("[{0}] {1}", token,
e.[Error].ToString())
Else
Console.WriteLine("Message sent.")
End If

End Sub

Cordialement
Joël



"DAN" a écrit dans le message de groupe
de discussion :
Merci de votre aide .
J'ai essayé l'instruction
oSmtp.SendAsync(oMessage) ' Envoie de façon asynchrone le message


Je ne sais pas dans ce cas par quoi je dois remplacer l'instruction
Dim oSmtp As New System.Net.Mail.SmtpClient



"Joël" a écrit dans le message de groupe de
discussion :
plutôt ce lien
SmtpClient.SendAsync, méthode
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.sendasync.aspx

Cordialement
Joël


"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
je viens de me rendre compte que c'est certainement l'instruction
oSmtp.Send(oMessage)
envoie de mes mails qui figent ma barre de progression.
donc je cherche un autre moyen pour que l'utilisateur ne pense pas
que mon programme est bloqué alors que c'est l'envoie des mails
avec les photos qui est long.
D'avance merci de votre aide.
PS a moins que qu'il ne faille inclure
oSmtp.Send(oMessage) dans le timer de progression .

"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
dans mon application j'envoie des images par mail et je voudrai
faire défiler une barre de progression pendant le temps de cet
envoie.
existe t'il un system de progressbare automatique que je n(aurai
qu"a mètre a visible = true ou visible = false?
D'avance merci de votre aide




















Avatar
DAN
Ce message est composé et au format MIME.

------=_NextPart_000_000E_01CAED5F.89673980
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=response
Content-Transfer-Encoding: 8bit

Salut Joel.
c'est super sympa mais la tu n'(utilises pas de progressbare et moi je
voudrai montrer qq chose qui bouge pour que l'utilisateur ne penses pas que
le programme est bloqué.
je vais essayer ce que tu m'indique pour voir ce que cela donne.
A+
Dan

"Joël" a écrit dans le message de groupe de discussion :

Bonjour Dan, Le Troll
Bien sur avec le nombre d'octets connu sa aurait beaucoup plus simple
pour l'utilisation du progressbar
mais apparemment avec System.Net.Mail enfin je n'ai pas trouvé quelque
chose qui renvoi le nombre d'octets
avec SendAsync
c'est pourquoi j'ai opter pour la deuxième solution que j'indiquais
j'envoi mon message en affichant une image GIF animé et un texte
d'informations
une fois le message traité j'affiche le résultat dans le teste d'info et
rend invisible mon image gif
et qui fonctionne parfaitement
voici le code que j'utilise:
' envoi le message
Me.PictureBox1.Visible=True
Me.LabelEnvoi.Text = "Envoi photos en cours... Patientez !"
Me.LabelEnvoi.Refresh()

' envoi en cours
AddHandler EmailClient.SendCompleted, AddressOf
SendCompletedCallback
Dim userState As String ="Mon message"
EmailClient.SendAsync(Message, userState)


une fois le message traité
Private Sub SendCompletedCallback(ByVal sender As Object, ByVal e As
AsyncCompletedEventArgs)
' Obtenir l'identifiant unique pour cette opération asynchrone.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Me.LabelEnvoi.Text = "Email photos annuler !"
End If
If Not e.[Error] Is Nothing Then
Me.LabelEnvoi.Text = e.[Error].ToString
Else
' envoi réussi
Me.LabelEnvoi.Text = "Email photos envoyé avec succès !"
End If

Me.PictureBox1.Visible = False
Me.Cancel_Button.Text = "Ok"
Me.Cursor = Cursors.Default
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
End Sub

Cordialement
Joël


"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour Dan,

Je ne m'y connais pas assez en vbNet pour te répondre, peux-tu aller
dans le forum vbNet, tu auras davantage de gens qui vont répondre ?

http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/threads

Il faudrait déjà récupérer la taille de l'envoi, mais je crois que tu
n'as pas toutes les informations, la question suivante pourrait être :
- 'Compter les octets d'un envoi mail ?"

A partir de la
step = maximum / nombre octets

for i = 1 to maximum d'octets ' boucle de principe
envoi 1 octet
step = step + 1
progressBar1.Value = step
next i

Il est fort possible qu'il te faille d'autres éléments comme des API
(comme "wLanApi", car envoyer un mail avec une image plus compter ce qui
est envoyé n'est pas courant (tu le vois bien aux réponses ici), il faut
que tu tombes sur quelqu'un qui à l'habitude de manipuler tout ça.
Toutefois, vois dans tes commandes actuelles vois s'il n'y a pas un
exemple, une fonction qui permette d'envoyer les octets un par un (s'ils
passent de ko en ko, suffit de remplacer dans la division "nombre octets"
par "nombre de ko".

En attendant tu peux toujours affichier un nouvelle form vbModal avec
le sablier et un mssage d'attente d'envoi...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:%
Merci de ton aide mais quand on ne connaît pas la durée du processus,
indiquer à la ProgressBar d'avancer de gauche à droite (comme lors de
l'ouverture de Windows XP)

MyBarre.Style = ProgressBarStyle.Marquee



"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour,

Le step ne peut pas être fixe, ce doit être un ratio de quelque
chose, car le fichiers n'ont pas tous la même taille, il faut faire un
règle de trois entre ce qui est envoyé et le nombre de step possibles,
et chaque octet ou ko ? correspond à x step.
Je ne m'y connais pas assez dans ce genre d'envoi, mais si tu as un
moyen de savoir combien d'octets tu envoies en permanence, c'est à
partir de cet élément qu'il faut définir l'avancement.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:
Merci Joel de ton aide.
J'ai commencé a exploiter ce code qui fonctionne mais mon progressbar
reste figé au moment de SendAsync
j'ai codé mon progressbar de la facon suivante pour ne pas a avoir a
coder un timer:
ProgressBar1.Maximum = 1000
ProgressBar1.Minimum = 0
ProgressBar1.Step = 5
ProgressBar1.Value = 5



qu'en penses tu?


"Joël" a écrit dans le message de groupe de
discussion :
Bonjour

Sa ne change pas c'est toujours New System.Net.Mail.SmtpClient

par contre il faut mettre en place pour le contrôle de l'envoi
SendCompletedCallback
pour gérer erreur et si bien envoyé
sur le lien que j'ai envoyé il y a un exemple en C

' envoi
Dim Message As New MailMessage(Expediteur, Destinataire, LeSujet,
LeMessage)
Dim Client As New SmtpClient("smtp." & ServeurExpediteur)

AddHandler client.SendCompleted, AddressOf SendCompletedCallback
Dim userState As String = "test message1"
client.SendAsync(Message, userState)

' controle l'envoi
Private Shared Sub SendCompletedCallback(ByVal sender As Object,
ByVal e As AsyncCompletedEventArgs)
' Get the unique identifier for this asynchronous
operation.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Console.WriteLine("[{0}] Send canceled.", token)
End If
If Not e.[Error] Is Nothing Then
Console.WriteLine("[{0}] {1}", token,
e.[Error].ToString())
Else
Console.WriteLine("Message sent.")
End If

End Sub

Cordialement
Joël



"DAN" a écrit dans le message de groupe
de discussion :
Merci de votre aide .
J'ai essayé l'instruction
oSmtp.SendAsync(oMessage) ' Envoie de façon asynchrone le message


Je ne sais pas dans ce cas par quoi je dois remplacer l'instruction
Dim oSmtp As New System.Net.Mail.SmtpClient



"Joël" a écrit dans le message de groupe de
discussion :
plutôt ce lien
SmtpClient.SendAsync, méthode
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.sendasync.aspx

Cordialement
Joël


"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
je viens de me rendre compte que c'est certainement l'instruction
oSmtp.Send(oMessage)
envoie de mes mails qui figent ma barre de progression.
donc je cherche un autre moyen pour que l'utilisateur ne pense
pas que mon programme est bloqué alors que c'est l'envoie des
mails avec les photos qui est long.
D'avance merci de votre aide.
PS a moins que qu'il ne faille inclure
oSmtp.Send(oMessage) dans le timer de progression .

"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
dans mon application j'envoie des images par mail et je voudrai
faire défiler une barre de progression pendant le temps de cet
envoie.
existe t'il un system de progressbare automatique que je n(aurai
qu"a mètre a visible = true ou visible = false?
D'avance merci de votre aide
























------=_NextPart_000_000E_01CAED5F.89673980
Content-Type: image/gif;
name="QMARK.GIF"
Content-Transfer-Encoding: base64
Content-ID:

R0lGODlhEwAfAPcAAP8ICP8PDv8VFf8dHP8kI/4qKf4xMP45N/4/Pv5GRP1NS/1UUv1bWf1hX/1o
Zvxwbfx2dPx9ev/xEf/vMf/vOf/vQv/vSv/vUv/ve/yEgfyLiPuSj/uZlfufnPuno/uuqfq0sPq7
t/rCvvrJxPrQy/nW0f///wAAAFoPqAAAAKV3dOgS7DgEXgAAAAAAG+ccF+gvo0AZ+gf5tj0EwAAA
ggAAAAAAAOccFwf4WTgEXgAAABLtDBLtGOchBqAEUEAZ+gAAAQAAAKV2wABCojgEXhLtOOcRoKV2
wP///AAAAeccF91SwEAZ+udwqUAQGEAQGAAAAjgEXt1SwEARH0BpZkARV91SwEBKYAAAATgEXt1S
wEBXPjgEXuccF91SwEBWx91SwAAAAEBWKSIEGgAAggAAAAAAABLt/AU4uE0QmBLuNEAc+EAZzU0B
UBLuNAAAAd1SwN1SwBQoyAU5jwAAAP8EsRLuzAAAARLtwP4CtBLukAkwAhxvWBQAAAAAAAU5hRxv
YCIEGgAAghLuQPZLohQAABxvWEm7eAAAABLuqEksef///xLuVEAbYwAAggAAAEm9GBLuUAAAggAA
ABLutEAa7AAAggAAAAAAB94kDBLvYAIAHxLunAAAABLvGAAAABLvXBLvGP3r+N4kDBLvgAIAHxLu
xAAAABLvQAAAABLvfBLvQP3r+AAAAAAAQBLu3AAAGAAAlP3r+AAAQAAAABLvNP3r/AAAAAAAQBLv
AAAAAAAAAAAAA/iKIAAAABLvDN41zAAAABLvbN3FhwAAjP3r+AAABBLvtAAABN1RAAAAjAAAAwwA
C2Km1GKmyAAAAN1SwN1SwBLvaEk9YQAAABLvdEAhPd1SwN1SwBLvhEksM////xLvkECnKgARMQAR
kQQj2N1SwAATzwAACd1SwAPReEA4yt1QAESV1d1SwGMboGMboEUEtd0AAN1RAEd6kAAAAAAAAE0b
IE0bIE0bIE0bIAAAtAAAtN2XsBLv9BLwCEEbWgAAAEAQGEAQGAAAAiH5BAEAACYALAAAAAATAB8A
AAjQAE0IHDgQAMGDCAUGWJiwoYCHDxseHECx4gCJAglo3LhRYoGPIEMWSGigJBQJKFNKKHnwwIGT
KmNKODAQAQKYMmMiMJEgAc6cMRMI/ClBgVEFRIfGXMC06YKfJn4ymEp1KlSCDbJq1Xp1oIOvYL8m
JfigrNkHYwlCWMuWqASEEeLGdZswg90MaRFq2JsX4YYNRDdg5MDhJ2GMHTrAxCAhMUYPHn5Cxvih
smXLGEFo3rwZY4gQPz9jFCHiJ2mMI0b8TI2RBImfrjGWKPFz9sGAAAA7

------=_NextPart_000_000E_01CAED5F.89673980
Content-Type: image/gif;
name="ARROW.GIF"
Content-Transfer-Encoding: base64
Content-ID:

R0lGODlhEwAfAPcAAP8ICP8PDv8VFf8dHP8kI/4qKf4xMP45N/4/Pv5GRP1NS/1UUv1bWf1hX/1o
Zvxwbfx2dPx9evyEgfyLiPuSj/uZlfufnPuno/uuqfq0sPq7t/rCvvrJxPrQy/nW0f///6V42Occ
QAAAggAABhLs8OeKBRQAAAAAAFoPqAAAAKV5jOgS7IAEXgAAAAAAG+ccF+gvo0AZ+gf5tj8EwAAA
ggAAAAAAAOccFwf4WYAEXgAAABLtDBLtGOchBqAEUEAZ+gAAAQAAAKV42ABCooAEXhLtOOcRoKV4
2P///AAAAeccF91YEEAZ+udwqUAQGEAQGAAAAoAEXt1YEEARH0BpZkARV91YEEBKYAAAAYAEXt1Y
EEBXPoAEXuccF91YEEBWx91YEAAAAEBWKTQEIAAAggAAAAAAABLt/AU4uEAZfk0BUN1YEEAZzU0B
UBLuNAAAAd1YEN1YEBQoyAU5jwAAAP8EsRLuzAAAARLtwP4CtBLukAkwAhn1MBQAAAAAAAU5hRn1
ODQEIAAAghLuQPZLohQAABn1MF/5sAAAABLuqEksef///xLuVEAbYwAAggAAAEm9GBLuUAAAggAA
ABLutEAa7AAAggAAAAAAB94kDBLvYAIAHxLunAAAABLvGAAAABLvXBLvGP3r+N4kDBLvgAIAHxLu
xAAAABLvQAAAABLvfBLvQP3r+AAAAAAAQBLu3AAAGAAAkP3r+AAAQAAAABLvNP3r/AAAAAAAQBLv
AAAAAAAAAAAAA/iKIAAAABLvDN41zAAAABLvbN3FhwAAuP3r+AAABBLvtAAABN1UgAAAuAAAAwwA
C2Km1GKmyAAAAN1YEN1YEBLvaEk9YQAAABLvdEAhPd1YEN1YEBLvhEksM////xLvkECnKgARMQAR
kQQj2N1YEAATzwAACd1YEAPReEA4yt1QAESV1d1YEGMboGMboEUEtd0AAN1UgESUMAAAAAAAAE0b
IE0bIE0bIE0bIAAAoAAAoN2XsBLv9BLwCEEbWgAAAEAQGEAQGAAAAiH5BAEAAB8ALAAAAAATAB8A
AAi+AD8IHDgQAMGDCAUGWJiwoYCHDxseHECx4gCJAglo3LhRYoGPIEMWSGigpMmTJg8eWMmypcuB
CGLKnEkz5ocEOHPq3KnzoIKfQIFiXEC0aFGMDJIqVYqxgdOnTzE6mEqVKsYHWLNmxQihq1evGCOI
HTsWo4SzaNFinMC2bVuMFOLKlYuxgt27dzFa2MuXL8YLgAMHxoihsGHDGDMoXrwYo4bHkCFj3EC5
cmWMHDJr1oyxg+fPnzF6GE2a9MGAAAA7

------=_NextPart_000_000E_01CAED5F.89673980--
Avatar
Joël
Bonsoir Dan,
comme je l'ai dit moi j'ai choisi un gif animée genre démarrage Windows
mais je viens d'essayer avec un progressbar et pas de problème
sa fonctionne sa me parait bizarre qu'il ne bouge pas chez toi puisque
l'envoi se fait en Async
donc l'application n'est pas bloquer pendant l'envoi
avec EmailClient.SendAsync(Message, userState)

sur ma forme un ProgressBar1 avec les propriétés
ProgressBar1.Style = ProgressBarStyle.Marquee
ProgressBar1.MarqueeAnimationSpeed = 20
ProgressBar1.Visible = False


dans le code
avant l'envoi je le rend visible et invisible une fois le message envoyé
et il fonctionne


Cordialement
Joël


"DAN" a écrit dans le message de groupe de
discussion : #
Salut Joel.
c'est super sympa mais la tu n'(utilises pas de progressbare et moi je
voudrai montrer qq chose qui bouge pour que l'utilisateur ne penses pas
que
le programme est bloqué.
je vais essayer ce que tu m'indique pour voir ce que cela donne.
A+
Dan

"Joël" a écrit dans le message de groupe de discussion
:

Bonjour Dan, Le Troll
Bien sur avec le nombre d'octets connu sa aurait beaucoup plus simple
pour l'utilisation du progressbar
mais apparemment avec System.Net.Mail enfin je n'ai pas trouvé quelque
chose qui renvoi le nombre d'octets
avec SendAsync
c'est pourquoi j'ai opter pour la deuxième solution que j'indiquais
j'envoi mon message en affichant une image GIF animé et un texte
d'informations
une fois le message traité j'affiche le résultat dans le teste d'info et
rend invisible mon image gif
et qui fonctionne parfaitement
voici le code que j'utilise:
' envoi le message
Me.PictureBox1.Visible=True
Me.LabelEnvoi.Text = "Envoi photos en cours... Patientez !"
Me.LabelEnvoi.Refresh()

' envoi en cours
AddHandler EmailClient.SendCompleted, AddressOf
SendCompletedCallback
Dim userState As String ="Mon message"
EmailClient.SendAsync(Message, userState)


une fois le message traité
Private Sub SendCompletedCallback(ByVal sender As Object, ByVal e As
AsyncCompletedEventArgs)
' Obtenir l'identifiant unique pour cette opération asynchrone.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Me.LabelEnvoi.Text = "Email photos annuler !"
End If
If Not e.[Error] Is Nothing Then
Me.LabelEnvoi.Text = e.[Error].ToString
Else
' envoi réussi
Me.LabelEnvoi.Text = "Email photos envoyé avec succès !"
End If

Me.PictureBox1.Visible = False
Me.Cancel_Button.Text = "Ok"
Me.Cursor = Cursors.Default
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
End Sub

Cordialement
Joël


"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour Dan,

Je ne m'y connais pas assez en vbNet pour te répondre, peux-tu aller
dans le forum vbNet, tu auras davantage de gens qui vont répondre ?

http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/threads

Il faudrait déjà récupérer la taille de l'envoi, mais je crois que tu
n'as pas toutes les informations, la question suivante pourrait être :
- 'Compter les octets d'un envoi mail ?"

A partir de la
step = maximum / nombre octets

for i = 1 to maximum d'octets ' boucle de principe
envoi 1 octet
step = step + 1
progressBar1.Value = step
next i

Il est fort possible qu'il te faille d'autres éléments comme des API
(comme "wLanApi", car envoyer un mail avec une image plus compter ce qui
est envoyé n'est pas courant (tu le vois bien aux réponses ici), il faut
que tu tombes sur quelqu'un qui à l'habitude de manipuler tout ça.
Toutefois, vois dans tes commandes actuelles vois s'il n'y a pas un
exemple, une fonction qui permette d'envoyer les octets un par un (s'ils
passent de ko en ko, suffit de remplacer dans la division "nombre
octets"
par "nombre de ko".

En attendant tu peux toujours affichier un nouvelle form vbModal avec
le sablier et un mssage d'attente d'envoi...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:%
Merci de ton aide mais quand on ne connaît pas la durée du processus,
indiquer à la ProgressBar d'avancer de gauche à droite (comme lors de
l'ouverture de Windows XP)

MyBarre.Style = ProgressBarStyle.Marquee



"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour,

Le step ne peut pas être fixe, ce doit être un ratio de quelque
chose, car le fichiers n'ont pas tous la même taille, il faut faire un
règle de trois entre ce qui est envoyé et le nombre de step possibles,
et chaque octet ou ko ? correspond à x step.
Je ne m'y connais pas assez dans ce genre d'envoi, mais si tu as un
moyen de savoir combien d'octets tu envoies en permanence, c'est à
partir de cet élément qu'il faut définir l'avancement.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:
Merci Joel de ton aide.
J'ai commencé a exploiter ce code qui fonctionne mais mon
progressbar
reste figé au moment de SendAsync
j'ai codé mon progressbar de la facon suivante pour ne pas a avoir a
coder un timer:
ProgressBar1.Maximum = 1000
ProgressBar1.Minimum = 0
ProgressBar1.Step = 5
ProgressBar1.Value = 5



qu'en penses tu?


"Joël" a écrit dans le message de groupe de
discussion :
Bonjour

Sa ne change pas c'est toujours New System.Net.Mail.SmtpClient

par contre il faut mettre en place pour le contrôle de l'envoi
SendCompletedCallback
pour gérer erreur et si bien envoyé
sur le lien que j'ai envoyé il y a un exemple en C

' envoi
Dim Message As New MailMessage(Expediteur, Destinataire, LeSujet,
LeMessage)
Dim Client As New SmtpClient("smtp." & ServeurExpediteur)

AddHandler client.SendCompleted, AddressOf SendCompletedCallback
Dim userState As String = "test message1"
client.SendAsync(Message, userState)

' controle l'envoi
Private Shared Sub SendCompletedCallback(ByVal sender As Object,
ByVal e As AsyncCompletedEventArgs)
' Get the unique identifier for this asynchronous
operation.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Console.WriteLine("[{0}] Send canceled.", token)
End If
If Not e.[Error] Is Nothing Then
Console.WriteLine("[{0}] {1}", token,
e.[Error].ToString())
Else
Console.WriteLine("Message sent.")
End If

End Sub

Cordialement
Joël



"DAN" a écrit dans le message de
groupe
de discussion :
Merci de votre aide .
J'ai essayé l'instruction
oSmtp.SendAsync(oMessage) ' Envoie de façon asynchrone le message


Je ne sais pas dans ce cas par quoi je dois remplacer l'instruction
Dim oSmtp As New System.Net.Mail.SmtpClient



"Joël" a écrit dans le message de groupe de
discussion :
plutôt ce lien
SmtpClient.SendAsync, méthode
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.sendasync.aspx

Cordialement
Joël


"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
je viens de me rendre compte que c'est certainement l'instruction
oSmtp.Send(oMessage)
envoie de mes mails qui figent ma barre de progression.
donc je cherche un autre moyen pour que l'utilisateur ne pense
pas que mon programme est bloqué alors que c'est l'envoie des
mails avec les photos qui est long.
D'avance merci de votre aide.
PS a moins que qu'il ne faille inclure
oSmtp.Send(oMessage) dans le timer de progression .

"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
dans mon application j'envoie des images par mail et je
voudrai
faire défiler une barre de progression pendant le temps de cet
envoie.
existe t'il un system de progressbare automatique que je n(aurai
qu"a mètre a visible = true ou visible = false?
D'avance merci de votre aide




















Avatar
LE TROLL
Eh, le sablier... il bouge !

Ben alors il faut que tu cherches jusqu'à trouver une personne qui sait, ou
un programme ce doit être possible puisque tous les téléchargements se font
de la sorte, regardes aussi dans les API, qui sait ? Sur vb aussi des
exemples.

Y aurait bien... une idée comme ça, ce serait de lire le débit, puis de
faire une application autonome (un autre exe), qui affiché toujours au
premier plan, s'occuperait de la barre de défilement en prenant pour pas
(step), la taille / débit, mais bon, c'est bien parce que tu veux une
barre...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:%
Salut Joel.
c'est super sympa mais la tu n'(utilises pas de progressbare et moi je
voudrai montrer qq chose qui bouge pour que l'utilisateur ne penses pas
que
le programme est bloqué.
je vais essayer ce que tu m'indique pour voir ce que cela donne.
A+
Dan

"Joël" a écrit dans le message de groupe de discussion
:

Bonjour Dan, Le Troll
Bien sur avec le nombre d'octets connu sa aurait beaucoup plus simple
pour l'utilisation du progressbar
mais apparemment avec System.Net.Mail enfin je n'ai pas trouvé quelque
chose qui renvoi le nombre d'octets
avec SendAsync
c'est pourquoi j'ai opter pour la deuxième solution que j'indiquais
j'envoi mon message en affichant une image GIF animé et un texte
d'informations
une fois le message traité j'affiche le résultat dans le teste d'info et
rend invisible mon image gif
et qui fonctionne parfaitement
voici le code que j'utilise:
' envoi le message
Me.PictureBox1.Visible=True
Me.LabelEnvoi.Text = "Envoi photos en cours... Patientez !"
Me.LabelEnvoi.Refresh()

' envoi en cours
AddHandler EmailClient.SendCompleted, AddressOf
SendCompletedCallback
Dim userState As String ="Mon message"
EmailClient.SendAsync(Message, userState)


une fois le message traité
Private Sub SendCompletedCallback(ByVal sender As Object, ByVal e As
AsyncCompletedEventArgs)
' Obtenir l'identifiant unique pour cette opération asynchrone.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Me.LabelEnvoi.Text = "Email photos annuler !"
End If
If Not e.[Error] Is Nothing Then
Me.LabelEnvoi.Text = e.[Error].ToString
Else
' envoi réussi
Me.LabelEnvoi.Text = "Email photos envoyé avec succès !"
End If

Me.PictureBox1.Visible = False
Me.Cancel_Button.Text = "Ok"
Me.Cursor = Cursors.Default
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
End Sub

Cordialement
Joël


"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour Dan,

Je ne m'y connais pas assez en vbNet pour te répondre, peux-tu aller
dans le forum vbNet, tu auras davantage de gens qui vont répondre ?

http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/threads

Il faudrait déjà récupérer la taille de l'envoi, mais je crois que tu
n'as pas toutes les informations, la question suivante pourrait être :
- 'Compter les octets d'un envoi mail ?"

A partir de la
step = maximum / nombre octets

for i = 1 to maximum d'octets ' boucle de principe
envoi 1 octet
step = step + 1
progressBar1.Value = step
next i

Il est fort possible qu'il te faille d'autres éléments comme des API
(comme "wLanApi", car envoyer un mail avec une image plus compter ce qui
est envoyé n'est pas courant (tu le vois bien aux réponses ici), il faut
que tu tombes sur quelqu'un qui à l'habitude de manipuler tout ça.
Toutefois, vois dans tes commandes actuelles vois s'il n'y a pas un
exemple, une fonction qui permette d'envoyer les octets un par un (s'ils
passent de ko en ko, suffit de remplacer dans la division "nombre
octets"
par "nombre de ko".

En attendant tu peux toujours affichier un nouvelle form vbModal avec
le sablier et un mssage d'attente d'envoi...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:%
Merci de ton aide mais quand on ne connaît pas la durée du processus,
indiquer à la ProgressBar d'avancer de gauche à droite (comme lors de
l'ouverture de Windows XP)

MyBarre.Style = ProgressBarStyle.Marquee



"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour,

Le step ne peut pas être fixe, ce doit être un ratio de quelque
chose, car le fichiers n'ont pas tous la même taille, il faut faire un
règle de trois entre ce qui est envoyé et le nombre de step possibles,
et chaque octet ou ko ? correspond à x step.
Je ne m'y connais pas assez dans ce genre d'envoi, mais si tu as un
moyen de savoir combien d'octets tu envoies en permanence, c'est à
partir de cet élément qu'il faut définir l'avancement.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:
Merci Joel de ton aide.
J'ai commencé a exploiter ce code qui fonctionne mais mon
progressbar
reste figé au moment de SendAsync
j'ai codé mon progressbar de la facon suivante pour ne pas a avoir a
coder un timer:
ProgressBar1.Maximum = 1000
ProgressBar1.Minimum = 0
ProgressBar1.Step = 5
ProgressBar1.Value = 5



qu'en penses tu?


"Joël" a écrit dans le message de groupe de
discussion :
Bonjour

Sa ne change pas c'est toujours New System.Net.Mail.SmtpClient

par contre il faut mettre en place pour le contrôle de l'envoi
SendCompletedCallback
pour gérer erreur et si bien envoyé
sur le lien que j'ai envoyé il y a un exemple en C

' envoi
Dim Message As New MailMessage(Expediteur, Destinataire, LeSujet,
LeMessage)
Dim Client As New SmtpClient("smtp." & ServeurExpediteur)

AddHandler client.SendCompleted, AddressOf SendCompletedCallback
Dim userState As String = "test message1"
client.SendAsync(Message, userState)

' controle l'envoi
Private Shared Sub SendCompletedCallback(ByVal sender As Object,
ByVal e As AsyncCompletedEventArgs)
' Get the unique identifier for this asynchronous
operation.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Console.WriteLine("[{0}] Send canceled.", token)
End If
If Not e.[Error] Is Nothing Then
Console.WriteLine("[{0}] {1}", token,
e.[Error].ToString())
Else
Console.WriteLine("Message sent.")
End If

End Sub

Cordialement
Joël



"DAN" a écrit dans le message de
groupe
de discussion :
Merci de votre aide .
J'ai essayé l'instruction
oSmtp.SendAsync(oMessage) ' Envoie de façon asynchrone le message


Je ne sais pas dans ce cas par quoi je dois remplacer l'instruction
Dim oSmtp As New System.Net.Mail.SmtpClient



"Joël" a écrit dans le message de groupe de
discussion :
plutôt ce lien
SmtpClient.SendAsync, méthode
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.sendasync.aspx

Cordialement
Joël


"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
je viens de me rendre compte que c'est certainement l'instruction
oSmtp.Send(oMessage)
envoie de mes mails qui figent ma barre de progression.
donc je cherche un autre moyen pour que l'utilisateur ne pense
pas que mon programme est bloqué alors que c'est l'envoie des
mails avec les photos qui est long.
D'avance merci de votre aide.
PS a moins que qu'il ne faille inclure
oSmtp.Send(oMessage) dans le timer de progression .

"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
dans mon application j'envoie des images par mail et je
voudrai
faire défiler une barre de progression pendant le temps de cet
envoie.
existe t'il un system de progressbare automatique que je n(aurai
qu"a mètre a visible = true ou visible = false?
D'avance merci de votre aide




















Avatar
DAN
Salut.
j'ai bien essayé de faire une appli autonome mais impossible de la metre au
premier plan, elle fonctionne bien pourtant.
Sous vb6 j'avuais bien réussi en utilisant le contrôle animation quui n'as
pas son équivalent vb.net
,

"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Eh, le sablier... il bouge !

Ben alors il faut que tu cherches jusqu'à trouver une personne qui sait,
ou un programme ce doit être possible puisque tous les téléchargements se
font de la sorte, regardes aussi dans les API, qui sait ? Sur vb aussi des
exemples.

Y aurait bien... une idée comme ça, ce serait de lire le débit, puis de
faire une application autonome (un autre exe), qui affiché toujours au
premier plan, s'occuperait de la barre de défilement en prenant pour pas
(step), la taille / débit, mais bon, c'est bien parce que tu veux une
barre...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:%
Salut Joel.
c'est super sympa mais la tu n'(utilises pas de progressbare et moi je
voudrai montrer qq chose qui bouge pour que l'utilisateur ne penses pas
que
le programme est bloqué.
je vais essayer ce que tu m'indique pour voir ce que cela donne.
A+
Dan

"Joël" a écrit dans le message de groupe de discussion
:

Bonjour Dan, Le Troll
Bien sur avec le nombre d'octets connu sa aurait beaucoup plus simple
pour l'utilisation du progressbar
mais apparemment avec System.Net.Mail enfin je n'ai pas trouvé quelque
chose qui renvoi le nombre d'octets
avec SendAsync
c'est pourquoi j'ai opter pour la deuxième solution que j'indiquais
j'envoi mon message en affichant une image GIF animé et un texte
d'informations
une fois le message traité j'affiche le résultat dans le teste d'info et
rend invisible mon image gif
et qui fonctionne parfaitement
voici le code que j'utilise:
' envoi le message
Me.PictureBox1.Visible=True
Me.LabelEnvoi.Text = "Envoi photos en cours... Patientez !"
Me.LabelEnvoi.Refresh()

' envoi en cours
AddHandler EmailClient.SendCompleted, AddressOf
SendCompletedCallback
Dim userState As String ="Mon message"
EmailClient.SendAsync(Message, userState)


une fois le message traité
Private Sub SendCompletedCallback(ByVal sender As Object, ByVal e As
AsyncCompletedEventArgs)
' Obtenir l'identifiant unique pour cette opération asynchrone.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Me.LabelEnvoi.Text = "Email photos annuler !"
End If
If Not e.[Error] Is Nothing Then
Me.LabelEnvoi.Text = e.[Error].ToString
Else
' envoi réussi
Me.LabelEnvoi.Text = "Email photos envoyé avec succès !"
End If

Me.PictureBox1.Visible = False
Me.Cancel_Button.Text = "Ok"
Me.Cursor = Cursors.Default
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
End Sub

Cordialement
Joël


"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour Dan,

Je ne m'y connais pas assez en vbNet pour te répondre, peux-tu aller
dans le forum vbNet, tu auras davantage de gens qui vont répondre ?

http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/threads

Il faudrait déjà récupérer la taille de l'envoi, mais je crois que
tu
n'as pas toutes les informations, la question suivante pourrait être :
- 'Compter les octets d'un envoi mail ?"

A partir de la
step = maximum / nombre octets

for i = 1 to maximum d'octets ' boucle de principe
envoi 1 octet
step = step + 1
progressBar1.Value = step
next i

Il est fort possible qu'il te faille d'autres éléments comme des API
(comme "wLanApi", car envoyer un mail avec une image plus compter ce
qui
est envoyé n'est pas courant (tu le vois bien aux réponses ici), il
faut
que tu tombes sur quelqu'un qui à l'habitude de manipuler tout ça.
Toutefois, vois dans tes commandes actuelles vois s'il n'y a pas un
exemple, une fonction qui permette d'envoyer les octets un par un
(s'ils
passent de ko en ko, suffit de remplacer dans la division "nombre
octets"
par "nombre de ko".

En attendant tu peux toujours affichier un nouvelle form vbModal
avec
le sablier et un mssage d'attente d'envoi...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:%
Merci de ton aide mais quand on ne connaît pas la durée du processus,
indiquer à la ProgressBar d'avancer de gauche à droite (comme lors de
l'ouverture de Windows XP)

MyBarre.Style = ProgressBarStyle.Marquee



"LE TROLL" <le a écrit dans le message de groupe de
discussion :
Bonjour,

Le step ne peut pas être fixe, ce doit être un ratio de quelque
chose, car le fichiers n'ont pas tous la même taille, il faut faire
un
règle de trois entre ce qui est envoyé et le nombre de step
possibles,
et chaque octet ou ko ? correspond à x step.
Je ne m'y connais pas assez dans ce genre d'envoi, mais si tu as un
moyen de savoir combien d'octets tu envoies en permanence, c'est à
partir de cet élément qu'il faut définir l'avancement.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" a écrit dans le message de
news:
Merci Joel de ton aide.
J'ai commencé a exploiter ce code qui fonctionne mais mon
progressbar
reste figé au moment de SendAsync
j'ai codé mon progressbar de la facon suivante pour ne pas a avoir a
coder un timer:
ProgressBar1.Maximum = 1000
ProgressBar1.Minimum = 0
ProgressBar1.Step = 5
ProgressBar1.Value = 5



qu'en penses tu?


"Joël" a écrit dans le message de groupe de
discussion :
Bonjour

Sa ne change pas c'est toujours New System.Net.Mail.SmtpClient

par contre il faut mettre en place pour le contrôle de l'envoi
SendCompletedCallback
pour gérer erreur et si bien envoyé
sur le lien que j'ai envoyé il y a un exemple en C

' envoi
Dim Message As New MailMessage(Expediteur, Destinataire, LeSujet,
LeMessage)
Dim Client As New SmtpClient("smtp." & ServeurExpediteur)

AddHandler client.SendCompleted, AddressOf SendCompletedCallback
Dim userState As String = "test message1"
client.SendAsync(Message, userState)

' controle l'envoi
Private Shared Sub SendCompletedCallback(ByVal sender As Object,
ByVal e As AsyncCompletedEventArgs)
' Get the unique identifier for this asynchronous
operation.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Console.WriteLine("[{0}] Send canceled.", token)
End If
If Not e.[Error] Is Nothing Then
Console.WriteLine("[{0}] {1}", token,
e.[Error].ToString())
Else
Console.WriteLine("Message sent.")
End If

End Sub

Cordialement
Joël



"DAN" a écrit dans le message de
groupe
de discussion :
Merci de votre aide .
J'ai essayé l'instruction
oSmtp.SendAsync(oMessage) ' Envoie de façon asynchrone le message


Je ne sais pas dans ce cas par quoi je dois remplacer
l'instruction
Dim oSmtp As New System.Net.Mail.SmtpClient



"Joël" a écrit dans le message de groupe de
discussion :
plutôt ce lien
SmtpClient.SendAsync, méthode
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.sendasync.aspx

Cordialement
Joël


"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
je viens de me rendre compte que c'est certainement
l'instruction
oSmtp.Send(oMessage)
envoie de mes mails qui figent ma barre de progression.
donc je cherche un autre moyen pour que l'utilisateur ne pense
pas que mon programme est bloqué alors que c'est l'envoie des
mails avec les photos qui est long.
D'avance merci de votre aide.
PS a moins que qu'il ne faille inclure
oSmtp.Send(oMessage) dans le timer de progression .

"DAN" a écrit dans le message de
groupe de discussion :
Bonjour a tous.
dans mon application j'envoie des images par mail et je
voudrai
faire défiler une barre de progression pendant le temps de cet
envoie.
existe t'il un system de progressbare automatique que je
n(aurai
qu"a mètre a visible = true ou visible = false?
D'avance merci de votre aide



























1 2