Comment faire tourner un Webbrowser en tâche de fonds

Résolu
h60 Messages postés 46 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 5 février 2012 - 8 sept. 2007 à 19:39
h60 Messages postés 46 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 5 février 2012 - 11 sept. 2007 à 17:38
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

cs_ahmed12 Messages postés 83 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 9 décembre 2010
11 sept. 2007 à 13:07
fait jouter un coup d'oeil sur idhttp de indy est trés utile pour ça.
3
h60 Messages postés 46 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 5 février 2012 1
11 sept. 2007 à 13:52
Merci
J'ai effectivement résolu mon probléme par Indy. mais j'auria sbien aimé savoir, pour le fin, si était possible. 
0
Utilisateur anonyme
11 sept. 2007 à 16:13
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.

@+
0
h60 Messages postés 46 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 5 février 2012 1
11 sept. 2007 à 17:38
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
0
Rejoignez-nous