Comment faire tourner un Webbrowser en tâche de fonds

[Résolu]
Signaler
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
-
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
-
Bonjour à tous
Je réalise une appli qui doit se connecter régulièrement sur un site intrenet pour charger des pages HTML et y récupérer des données afin d'alimenter ma base.
Cette appli doit tourner en tâche de fonds
Actuellement j'utilise un WebBrowser afin de récupérer le code HTML pour extraire mes informations. Mon problème est le suivant.
Tout va bien tant que mon appli est visible mais quand je la rend invisible les pages ne se chargent plus.
Comment faire pour remedier  à ça?
Merci pour vos réponses

4 réponses

Messages postés
83
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
9 décembre 2010

fait jouter un coup d'oeil sur idhttp de indy est trés utile pour ça.
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
1
Merci
J'ai effectivement résolu mon probléme par Indy. mais j'auria sbien aimé savoir, pour le fin, si était possible. 

Salut,

En faisant quelques recherches, on peut obtenir ceci :

Un TWebBrowser, un mémo et 2 boutons :

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.navigate('www.google.fr');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Text:=WebBrowser1.OleObject.Document.Body.InnerHTML;
memo1.Lines.SaveToFile('C:\MyFile.HTML');
end;

A toi de retranscrire ceci en créant le memo et le webbrowser de façon dynamique.

Ps : C'est une méthode simple mais crade. Pourquoi ? Car le webbrowser utilise tout simplement IE donc à proscrire. Une méthode plus difficile en terme de code (mais pas plus long) est d'utiliser le composant IdHTTP comme on te l'a dit.

@+
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
1
Merci Francky

J'avais fait le même code. Mais il ne marche que si l'appli et active et modale. J'ai donc utilisé un IndyHTTP

with TIdHTTP.Create(nil) do
  try
    Memo1.Text := Get('Google.fr');
  finally
    Free;
  end;

C'est très rapide et c'est exactement ce que je voulais.

Merci à tous pour votre participation