Probleme avec Visual Basic et Explorer

Bonjour,

Je souhaite souhaite crée une application sous visual basic capable de telecharger automatiquement des données sur internet, par exemple le programme effectuera les tache suivantes :
-connection sur le site demande
-rentrer l’utilisateur et le mot de passe
-valider le bouton “connexion”
-telecharger le fichier sur mon disque dur
-…

qld peut-il m’aider ? merci.

Si tu veux qu’on t’aide, commence par décrire ce qui te bloque (un bout de code de ce que tu as déja fait ne serait pas de trop aussi).

Je connais le language pour une utilisation “local”, par contre je n’ai pas la moindre idée pour une utilisation avec le web, je sais meme pas ouvrir une page web a l’adresse que je souhaite

pour info, j’ai trouve ce code mais je le comprends pas

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

La ligne suivante affiche le site Developpez.com dans le navigateur par défaut, en fournissant le répertoire de votre application comme répertoire par défaut :

vbShellExecute Me.hwnd, "open", "http://www.developpez.com", "", App.Path, 1

Pour faire ce que tu souhaites il faudra obligatoirement passer par les API windows voire, au pire, passer par le composant winsock de VB.
Je veux bien t’aider mais je ne suis pas la pour tout te faire à ta place.

ne connaissant ni les API ni winsock, j’ai essayé de trouve qlq chose de + simple

ci-joint le debut du code

Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection

Set IE = CreateObject("InternetExplorer.Application")

IE.Visible = True
IE.Navigate "http://www.clubic.fr/"

Set Helem = IE.document.getElementById("username")
Helem.Value = "USER"
Set Helem = IE.document.getElementById("password")
Helem.Value = "PWD"
Set Helem = IE.document.getElementById("login")
Helem.Click

sachant que j’ai active les composants Microsoft HTML Objects Library et Microsoft Internet Controls , seulement j’ai deja une erreur sur la 1ere ligne “type incompatible” Set IE = CreateObject(“InternetExplorer.Application”)

Apparemment tu es sur la bonne voie.
Je ne connaît pas IE, mais la fonction createObject te crée un objet OLE te permettant de “piloter” un appli en VB (on accède à un objet distant), ça marche aussi pour Word, Excel. Et c’est beaucoup plus facile à utiliser que les api bas niveau.

En général, je crois qu’on ne peut pas typer les objets, donc utilise un type Variant:
dim IE as Variant.

et pour connaître les méthodes et attributs accessibles sur cet objet, il faut se référer à la doc microsoft:
http://msdn.microsoft.com/workshop/browser…netexplorer.asp

un truc marrant avec ça, c’est qu’apparemment ça permet aussi de faire des chevaux de troie:
http://www.transfert.net/a8998

bref, tu as pas mal d’élément pour trouver ce dont tu a besoin :slight_smile:

ca y est, j’ai presque fini

reste un probleme, lorsque j’effectue le telechargement, la boite de dialog windows apparait, comment faire pour la supprimer et enregistrer le fichier sur mon DD

j’ai essaye avec l’event “filedownload”, mais je n’y arrive pas

Essaye un SendKeys

en cherchant un peu, je suis arrive a affiche le fichier de type Excel dans la fenetre de l’explorer, il me reste juste a “enregistrer sous” avec le format Excel

et je bloque…

Sendkeys, ça envoie des commandes clavier à l’application ouverte, je pensait qu’il te proposait “enregistrer sous” dans ce cas, il suffirait d’envoyer un return pour qu’il enregistre, sinon, il faut envoyer soit un ctrl-s , soit “alt-f s” le nom de ton fichier, puis [enter].
regarder l’aide de la fonction sendkeys sous VB:
si tu fait alt-f s fichier return, ça donne ça:
sendkeys “%fsc:\temp\toto.xls~”
ou avec ctrl-s
sendkeys “^sc:\temp\toto.xls~”

ca marche, a la seule difference qu’il faut inserer des pauses sinon la boite de dialogue n’a pas le temps d’apparaitre

SendKeys “~”, True
'Pause 2s
SendKeys “c:\01 2005.xls~”, True

merci, encors.