suite de mes démêlées de téléchargement de fichier ...
j'essaie désespérément de télécharger un fichier depuis un site internet,
avec une boite indiquant la progression du téléchargement, et que
l'exécution du code soit stoppée durant le téléchargement ...
j'ai essayé
DoFileDownload StrConv("MonUrl", vbUnicode)
qui fournit en effet une superbe boite de progression ... mais est
asynchrone ... donc, mon code se poursuit, et je ne sais pas si le
téléchargement a réussi ou pas ....
essai aussi de
URLDownloadToFile(Source, Cible) qui s'exécute de manière synchrone, mais
sans montrer de progression du téléchargement ...
y aurait il une 3° voie qui combinerait ces deux là ?
:-)
merci par avance....
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
Hello,
Tu peux utiliser la dernière méthode de ce post: http://groups.google.com/groups?selm=OX8J9mmaEHA.524%40TK2MSFTNGP09.phx.gbl
Le téléchargement est effectué de manière asynchrone. Il te suffit de récupérer l'événement Complete pour déterminer quand il faut continuer l'exécution.
C'est aussi faisable via URLDownloadToFile en utilisant son dernier membre. Il faut alors avoir une typelib qui décrit l'interface IBindStatusCallback. Le problème est que s'il y a un plantage du serveur, il y aura plantage de l'API, et comme on travaille de manière synchrone tout le programme serait planté!
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"scraper" a écrit dans le message de news:
suite de mes démêlées de téléchargement de fichier ...
j'essaie désespérément de télécharger un fichier depuis un site internet, avec une boite indiquant la progression du téléchargement, et que l'exécution du code soit stoppée durant le téléchargement ...
j'ai essayé
DoFileDownload StrConv("MonUrl", vbUnicode)
qui fournit en effet une superbe boite de progression ... mais est asynchrone ... donc, mon code se poursuit, et je ne sais pas si le téléchargement a réussi ou pas ....
essai aussi de
URLDownloadToFile(Source, Cible) qui s'exécute de manière synchrone, mais sans montrer de progression du téléchargement ...
y aurait il une 3° voie qui combinerait ces deux là ?
Hello,
Tu peux utiliser la dernière méthode de ce post:
http://groups.google.com/groups?selm=OX8J9mmaEHA.524%40TK2MSFTNGP09.phx.gbl
Le téléchargement est effectué de manière asynchrone. Il te suffit de
récupérer l'événement Complete pour déterminer quand il faut continuer
l'exécution.
C'est aussi faisable via URLDownloadToFile en utilisant son dernier membre.
Il faut alors avoir une typelib qui décrit l'interface IBindStatusCallback.
Le problème est que s'il y a un plantage du serveur, il y aura plantage de
l'API, et comme on travaille de manière synchrone tout le programme serait
planté!
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"scraper" <scraper@pasdespam.fr> a écrit dans le message de
news:uKzVDu7eEHA.3632@TK2MSFTNGP11.phx.gbl
suite de mes démêlées de téléchargement de fichier ...
j'essaie désespérément de télécharger un fichier depuis un site
internet, avec une boite indiquant la progression du téléchargement,
et que l'exécution du code soit stoppée durant le téléchargement ...
j'ai essayé
DoFileDownload StrConv("MonUrl", vbUnicode)
qui fournit en effet une superbe boite de progression ... mais est
asynchrone ... donc, mon code se poursuit, et je ne sais pas si le
téléchargement a réussi ou pas ....
essai aussi de
URLDownloadToFile(Source, Cible) qui s'exécute de manière synchrone,
mais sans montrer de progression du téléchargement ...
y aurait il une 3° voie qui combinerait ces deux là ?
Tu peux utiliser la dernière méthode de ce post: http://groups.google.com/groups?selm=OX8J9mmaEHA.524%40TK2MSFTNGP09.phx.gbl
Le téléchargement est effectué de manière asynchrone. Il te suffit de récupérer l'événement Complete pour déterminer quand il faut continuer l'exécution.
C'est aussi faisable via URLDownloadToFile en utilisant son dernier membre. Il faut alors avoir une typelib qui décrit l'interface IBindStatusCallback. Le problème est que s'il y a un plantage du serveur, il y aura plantage de l'API, et comme on travaille de manière synchrone tout le programme serait planté!
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"scraper" a écrit dans le message de news:
suite de mes démêlées de téléchargement de fichier ...
j'essaie désespérément de télécharger un fichier depuis un site internet, avec une boite indiquant la progression du téléchargement, et que l'exécution du code soit stoppée durant le téléchargement ...
j'ai essayé
DoFileDownload StrConv("MonUrl", vbUnicode)
qui fournit en effet une superbe boite de progression ... mais est asynchrone ... donc, mon code se poursuit, et je ne sais pas si le téléchargement a réussi ou pas ....
essai aussi de
URLDownloadToFile(Source, Cible) qui s'exécute de manière synchrone, mais sans montrer de progression du téléchargement ...
y aurait il une 3° voie qui combinerait ces deux là ?
Le téléchargement est effectué de manière asynchrone. Il te suffit de récupérer l'événement Complete pour déterminer quand il faut continuer l'exécution.
ben j'y ai été, tu penses bien ! :-)
mais j'ai dû louper un truc, ça fonctionne pas ?
j'ai créé un contrôle utilisateur, j'y ai collé la première partie du code, je l'ai ajouté à la form, où je l'ai appelé comme tu l'indiques :
---------------- Private Sub Form_Load() UserControl11.Download "http://...", "c:fichier.txt" End Sub
Private Sub UserControl11_StateChange(lngSate As Long, strState As String) If lngSate = 0 Then MsgBox "Erreur !" End If End Sub ----------------- mais il ne se passe rien ?
dois je rajouter qque chose à la feuille ?
C'est aussi faisable via URLDownloadToFile en utilisant son dernier membre. Il faut alors avoir une typelib qui décrit l'interface IBindStatusCallback. Le problème est que s'il y a un plantage du serveur, il y aura plantage de l'API, et comme on travaille de manière synchrone tout le programme serait planté!
ah, OK, je savais pas .... de toutes façons, j'ai effectivement parcouru les articles de MSDN à ce sujet ... et .. humm ... pas compris grand chose !
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
Le téléchargement est effectué de manière asynchrone. Il te suffit de
récupérer l'événement Complete pour déterminer quand il faut continuer
l'exécution.
ben j'y ai été, tu penses bien ! :-)
mais j'ai dû louper un truc, ça fonctionne pas ?
j'ai créé un contrôle utilisateur, j'y ai collé la première partie du code,
je l'ai ajouté à la form, où je l'ai appelé comme tu l'indiques :
----------------
Private Sub Form_Load()
UserControl11.Download "http://...", "c:fichier.txt"
End Sub
Private Sub UserControl11_StateChange(lngSate As Long, strState As String)
If lngSate = 0 Then
MsgBox "Erreur !"
End If
End Sub
-----------------
mais il ne se passe rien ?
dois je rajouter qque chose à la feuille ?
C'est aussi faisable via URLDownloadToFile en utilisant son dernier
membre. Il faut alors avoir une typelib qui décrit l'interface
IBindStatusCallback. Le problème est que s'il y a un plantage du
serveur, il y aura plantage de l'API, et comme on travaille de
manière synchrone tout le programme serait planté!
ah, OK, je savais pas .... de toutes façons, j'ai effectivement parcouru les
articles de MSDN à ce sujet ... et .. humm ... pas compris grand chose !
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
Le téléchargement est effectué de manière asynchrone. Il te suffit de récupérer l'événement Complete pour déterminer quand il faut continuer l'exécution.
ben j'y ai été, tu penses bien ! :-)
mais j'ai dû louper un truc, ça fonctionne pas ?
j'ai créé un contrôle utilisateur, j'y ai collé la première partie du code, je l'ai ajouté à la form, où je l'ai appelé comme tu l'indiques :
---------------- Private Sub Form_Load() UserControl11.Download "http://...", "c:fichier.txt" End Sub
Private Sub UserControl11_StateChange(lngSate As Long, strState As String) If lngSate = 0 Then MsgBox "Erreur !" End If End Sub ----------------- mais il ne se passe rien ?
dois je rajouter qque chose à la feuille ?
C'est aussi faisable via URLDownloadToFile en utilisant son dernier membre. Il faut alors avoir une typelib qui décrit l'interface IBindStatusCallback. Le problème est que s'il y a un plantage du serveur, il y aura plantage de l'API, et comme on travaille de manière synchrone tout le programme serait planté!
ah, OK, je savais pas .... de toutes façons, j'ai effectivement parcouru les articles de MSDN à ce sujet ... et .. humm ... pas compris grand chose !
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
scraper
François Picalausa
Hello,
Teste peut-être l'événement Complete: Private Sub UserControl11_Complete(bSuccess As Boolean) If bSuccess Then Msgbox "Téléchargement terminé avec succès" Else Msgbox "Erreur lors du téléchargement" End Inf End Sub
Ce genre d'erreur pourrait se produire si une erreur se produit dans Download. Si tu décommente dans Sub Download la ligne MsgBox "Une erreur ...", l'erreur exacte sera affichée.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"scraper" a écrit dans le message de news:ujRU5j%
mais j'ai dû louper un truc, ça fonctionne pas ?
j'ai créé un contrôle utilisateur, j'y ai collé la première partie du code, je l'ai ajouté à la form, où je l'ai appelé comme tu l'indiques :
---------------- ... ----------------- mais il ne se passe rien ?
Hello,
Teste peut-être l'événement Complete:
Private Sub UserControl11_Complete(bSuccess As Boolean)
If bSuccess Then
Msgbox "Téléchargement terminé avec succès"
Else
Msgbox "Erreur lors du téléchargement"
End Inf
End Sub
Ce genre d'erreur pourrait se produire si une erreur se produit dans
Download.
Si tu décommente dans Sub Download la ligne MsgBox "Une erreur ...",
l'erreur exacte sera affichée.
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"scraper" <scraper@pasdespam.fr> a écrit dans le message de
news:ujRU5j%23eEHA.2532@TK2MSFTNGP09.phx.gbl
mais j'ai dû louper un truc, ça fonctionne pas ?
j'ai créé un contrôle utilisateur, j'y ai collé la première partie du
code, je l'ai ajouté à la form, où je l'ai appelé comme tu
l'indiques :
----------------
...
-----------------
mais il ne se passe rien ?
Teste peut-être l'événement Complete: Private Sub UserControl11_Complete(bSuccess As Boolean) If bSuccess Then Msgbox "Téléchargement terminé avec succès" Else Msgbox "Erreur lors du téléchargement" End Inf End Sub
Ce genre d'erreur pourrait se produire si une erreur se produit dans Download. Si tu décommente dans Sub Download la ligne MsgBox "Une erreur ...", l'erreur exacte sera affichée.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"scraper" a écrit dans le message de news:ujRU5j%
mais j'ai dû louper un truc, ça fonctionne pas ?
j'ai créé un contrôle utilisateur, j'y ai collé la première partie du code, je l'ai ajouté à la form, où je l'ai appelé comme tu l'indiques :
---------------- ... ----------------- mais il ne se passe rien ?
scraper
Salut à François Picalausa qui dans son post news:%23lSxfV$ nous a écrit/répondu :
Hello,
Teste peut-être l'événement Complete: Private Sub UserControl11_Complete(bSuccess As Boolean) If bSuccess Then Msgbox "Téléchargement terminé avec succès" Else Msgbox "Erreur lors du téléchargement" End Inf End Sub
Ce genre d'erreur pourrait se produire si une erreur se produit dans Download. Si tu décommente dans Sub Download la ligne MsgBox "Une erreur ...", l'erreur exacte sera affichée.
merci ! :-)
je commence à y voir un peu plus clair ... non sans mal !
bon, étape suivante : je suis en train de créer ma boite de dialogue de téléchargement, mais subitement je me demande si je suis pas en train de réinventer la roue ? lol
que pourrais je utiliser comme contrôle (et comment ?) pour arriver à un résultat similaire à celui obtenu avec DoFileDownload, par exemple ?
(j'ai déjà réussi à mettre en place une progressbar ...mais le reste ...)
au fait, dans la fonction que tu m'as indiquée donc ... si j'annule le téléchargement, l'erreur est pas signalée ??
en tout cas, déjà un grand merci !
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
scraper
Salut à François Picalausa qui dans son post
news:%23lSxfV$eEHA.3148@TK2MSFTNGP10.phx.gbl
nous a écrit/répondu :
Hello,
Teste peut-être l'événement Complete:
Private Sub UserControl11_Complete(bSuccess As Boolean)
If bSuccess Then
Msgbox "Téléchargement terminé avec succès"
Else
Msgbox "Erreur lors du téléchargement"
End Inf
End Sub
Ce genre d'erreur pourrait se produire si une erreur se produit dans
Download.
Si tu décommente dans Sub Download la ligne MsgBox "Une erreur ...",
l'erreur exacte sera affichée.
merci ! :-)
je commence à y voir un peu plus clair ... non sans mal !
bon, étape suivante :
je suis en train de créer ma boite de dialogue de téléchargement, mais
subitement je me demande si je suis pas en train de réinventer la roue ?
lol
que pourrais je utiliser comme contrôle (et comment ?) pour arriver à un
résultat similaire à celui obtenu avec DoFileDownload, par exemple ?
(j'ai déjà réussi à mettre en place une progressbar ...mais le reste ...)
au fait, dans la fonction que tu m'as indiquée donc ... si j'annule le
téléchargement, l'erreur est pas signalée ??
en tout cas, déjà un grand merci !
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
Salut à François Picalausa qui dans son post news:%23lSxfV$ nous a écrit/répondu :
Hello,
Teste peut-être l'événement Complete: Private Sub UserControl11_Complete(bSuccess As Boolean) If bSuccess Then Msgbox "Téléchargement terminé avec succès" Else Msgbox "Erreur lors du téléchargement" End Inf End Sub
Ce genre d'erreur pourrait se produire si une erreur se produit dans Download. Si tu décommente dans Sub Download la ligne MsgBox "Une erreur ...", l'erreur exacte sera affichée.
merci ! :-)
je commence à y voir un peu plus clair ... non sans mal !
bon, étape suivante : je suis en train de créer ma boite de dialogue de téléchargement, mais subitement je me demande si je suis pas en train de réinventer la roue ? lol
que pourrais je utiliser comme contrôle (et comment ?) pour arriver à un résultat similaire à celui obtenu avec DoFileDownload, par exemple ?
(j'ai déjà réussi à mettre en place une progressbar ...mais le reste ...)
au fait, dans la fonction que tu m'as indiquée donc ... si j'annule le téléchargement, l'erreur est pas signalée ??
en tout cas, déjà un grand merci !
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
scraper
François Picalausa
Hello,
"scraper" a écrit dans le message de news:
je suis en train de créer ma boite de dialogue de téléchargement, mais subitement je me demande si je suis pas en train de réinventer la roue ?
Lors de mes recherches, je n'avais rien trouvé qui permettait -de faire un téléchargement asynchrone -avec retour de la progression -en affichant une boite de dialogue Ce qui ne veut pas dire que ça n'existe pas ;-)
que pourrais je utiliser comme contrôle (et comment ?) pour arriver à un résultat similaire à celui obtenu avec DoFileDownload, par exemple ?
(j'ai déjà réussi à mettre en place une progressbar ...mais le reste ...)
Pour afficher correctement les différents états de connection, il faut te référer à l'aide de VB: http://msdn.microsoft.com/library/en-us/vb98/html/vbobjAsyncPropertyObject.asp Le contrôle activeX n'est qu'un "wrapper"... Les états de connections peuvent être interprétés comme décrit ici: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/vbprostatuscodeproperty.asp
Sinon, effectivement,Cancel ne provoque pas un changement d'état en erreur. Mais il apelle bien Complete avec false pour success.. Il est bien entendu possible d'améliorer le contrôle.. le code que je présentais dans l'article visait surtout à montrer une manière de procéder pour télécharger un fichier de manière asynchrone et pas faire le composant tout fait le plus génial de tous les temps, de toute la galaxie et au delà.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
Hello,
"scraper" <scraper@pasdespam.fr> a écrit dans le message de
news:OREdKTAfEHA.2604@TK2MSFTNGP12.phx.gbl
je suis en train de créer ma boite de dialogue de téléchargement, mais
subitement je me demande si je suis pas en train de réinventer la
roue ?
Lors de mes recherches, je n'avais rien trouvé qui permettait
-de faire un téléchargement asynchrone
-avec retour de la progression
-en affichant une boite de dialogue
Ce qui ne veut pas dire que ça n'existe pas ;-)
que pourrais je utiliser comme contrôle (et comment ?) pour arriver à
un résultat similaire à celui obtenu avec DoFileDownload, par exemple
?
(j'ai déjà réussi à mettre en place une progressbar ...mais le reste
...)
Pour afficher correctement les différents états de connection, il faut te
référer à l'aide de VB:
http://msdn.microsoft.com/library/en-us/vb98/html/vbobjAsyncPropertyObject.asp
Le contrôle activeX n'est qu'un "wrapper"...
Les états de connections peuvent être interprétés comme décrit ici:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/vbprostatuscodeproperty.asp
Sinon, effectivement,Cancel ne provoque pas un changement d'état en erreur.
Mais il apelle bien Complete avec false pour success..
Il est bien entendu possible d'améliorer le contrôle.. le code que je
présentais dans l'article visait surtout à montrer une manière de procéder
pour télécharger un fichier de manière asynchrone et pas faire le composant
tout fait le plus génial de tous les temps, de toute la galaxie et au delà.
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
je suis en train de créer ma boite de dialogue de téléchargement, mais subitement je me demande si je suis pas en train de réinventer la roue ?
Lors de mes recherches, je n'avais rien trouvé qui permettait -de faire un téléchargement asynchrone -avec retour de la progression -en affichant une boite de dialogue Ce qui ne veut pas dire que ça n'existe pas ;-)
que pourrais je utiliser comme contrôle (et comment ?) pour arriver à un résultat similaire à celui obtenu avec DoFileDownload, par exemple ?
(j'ai déjà réussi à mettre en place une progressbar ...mais le reste ...)
Pour afficher correctement les différents états de connection, il faut te référer à l'aide de VB: http://msdn.microsoft.com/library/en-us/vb98/html/vbobjAsyncPropertyObject.asp Le contrôle activeX n'est qu'un "wrapper"... Les états de connections peuvent être interprétés comme décrit ici: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/vbprostatuscodeproperty.asp
Sinon, effectivement,Cancel ne provoque pas un changement d'état en erreur. Mais il apelle bien Complete avec false pour success.. Il est bien entendu possible d'améliorer le contrôle.. le code que je présentais dans l'article visait surtout à montrer une manière de procéder pour télécharger un fichier de manière asynchrone et pas faire le composant tout fait le plus génial de tous les temps, de toute la galaxie et au delà.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net