Bonjour tout le monde et merci d'avance pour voter aide précieuse.
Comme précisé dans le titre j'ai un problème avec la classe OLEVariant, je vous explique.
Je souhaiterai faire une application qui permet de piloter internet explorer pour pouvoir allez sur un site pour récupérer certaine information afin de les afficher sur mon logiciel et pour pouvoir envoyer un message, ... Ne sachant pas du tout comment interagir avec internet explorer j'ai fait des recherche sur le net et sur développez et j'ai réussi à trouver ce code pour pouvoir ouvrir internet explorer, allez sur le site en question et me connecter.
En sachant que IE est une variable globale déclaré comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Function ConnexionLogin (Pseudo : String; MotPasse : String) : Boolean; Var ovElements : OLEVariant; i : Integer; m : Integer; Begin Result := false; try IE := CreateOleObject('InternetExplorer.Application'); IE.Visible := true; IE.Navigate('http://destinyevilangels.xooit.com/login.php'); while (Cardinal(IE.readyState) <> 4) do sleep(1000); // ** Remplir les champs de connexion m := 0; while m < IE.Document.forms.Length do begin ovElements := IE.Document.Forms.Item(m).Elements; for i := 0 to ovElements.Length - 1 do begin if (CompareText(ovElements.Item(i).TagName, 'INPUT') = 0) and (ovElements.Item(i).Id = 'username') then ovElements.item(i).Value := Pseudo; if (CompareText(ovElements.Item(i).TagName, 'INPUT') = 0) and (ovElements.Item(i).Id = 'password') then ovElements.item(i).Value := MotPasse; end; IE.Document.Forms.Item(0).submit; while Cardinal(IE.readyState) <> 4 do sleep(1000); Inc (m); end; Result := true; except end; End;
IE : OLEVariant;
Ça marche nickel.
Mais une fois que je suis connecté j'aimerai récupérer le contenue de ma page internet donc je fais comme ça :
Et la ça marche pas du tout, il me met cet erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure RecupererContenu (); var Str : String; Begin Str := IE.OleObject.Document.Body.InnerHTML; End;
Exception EOleError 'Le variant ne référence pas un objet Automation'.
Je ne sais vraiment pas du tout comment faire pour éviter cet erreur. Pouvez vous m'éclaircir?
Merci à tous
PS : Si j'ai pas été assez clair n'hésitez pas et me demander plus de précision
PS1 : Je programme avec Delphi 5
Partager