IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Remplir formulaire automatique


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 55
    Points
    55
    Par défaut Remplir formulaire automatique
    Bonjour
    j'ai trouver dans la faq de c++ builder la procédure pour remplir un formulaire automatique.
    je souhaiterais me loguer sur un site automatique .
    j'ai donc mis cette procédure dans un timer à 5s ( le temps de charger la page)
    cela fonctionne mais ce message d'erreur apparais au bout de 10s.


    ps : lorsque j’exécute cette procédure à partir d'un bouton , je n'ai pas d'erreur.
    mais je souhaiterais le faire automatiquement.

    quelqu'un pourrais t'il m'aider

    mon code :
    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
     
    __fastcall TForm2::TForm2(TComponent* Owner)
            : TForm(Owner)
    {
    WideString source = Memo1->Lines->Text;
    CppWebBrowser1->Navigate(source, 0, 0, 0, 0);
    }
     
    void __fastcall TForm2::Timer1Timer(TObject *Sender)
    {
    Variant vDocument = CppWebBrowser1 ->ControlInterface->Document;
    if (((IDispatch *)vDocument) != NULL)
    {
       Variant vForms = vDocument.OlePropertyGet("Forms");
       Variant vForm = vForms.OleFunction("NamedItem","ident");
       Variant vContent = vForm.OlePropertyGet("All");
       Variant vLoginField = vContent.OleFunction("NamedItem","LOGIN");
       Variant vPassField = vContent.OleFunction("NamedItem","PASSWORD");
       vLoginField.OlePropertySet("Value","monlogin");
       vPassField.OlePropertySet("Value","monpassword");
       vForm.OleProcedure("Submit");
     
    }
    }
    merci

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut manworms2
    Tu n'arrete pas ton Timer quand dans
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    Je ferais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
    Timer1->Enabled = false;
    Variant vDocument = CppWebBrowser1 ->ControlInterface->Document;
    Il y a aussi la possibilite d'attendre que la page se charge avec ( ReadyState )
    Voici un bout de code l'appel est different mais le fonctionnement est le meme mais sans Timer
    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
    #include <utilcls.h> // <----- ne pas oublier
    #include <ComObj.hpp> // <----- utile dans certains cas
    // demarrer IE
     // Cree un objet unique non initialisé de la classe spécifiée
     // par le paramètre 'InternetExplorer.Application'
     try
      {
       vMSIEApp = Variant::GetActiveObject("InternetExplorer.Application");
      }
     catch(...)
      {
       vMSIEApp = Variant::CreateObject("InternetExplorer.Application");
      }
     //Rends l'application IE visible
     vMSIEApp.OlePropertySet("Visible", true);
     // permet d'attendre le chargement de la page
     while(vMSIEApp.OlePropertyGet("ReadyState") != READYSTATE_COMPLETE)
     
    // ici tu ajoute ton code
     
     //Fermer IE
     vMSIEApp.OleFunction("Quit");
     // on libere les Variants
     vMSIEApp = Unassigned;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    merci et merci pour l'astuce
    je bloque sur un autre problème , je souhaite passer le login et password
    par une variable , je l'ai déclaré en AnsiString mais apparemment ça ne convient pas .

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Ansistring et Variant ne font pas bon menage, si ce sont des variables fixes declare les directement en Variant, si non " MaVariable.c_str() "
    tu peut voir aussi du cote de " StringToOleStr " ou " WideString "

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    merci resolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.4] Remplir formulaire automatiquement
    Par qltmi dans le forum Langage
    Réponses: 1
    Dernier message: 25/01/2014, 21h29
  2. Réponses: 1
    Dernier message: 06/05/2009, 11h18
  3. Remplir un formulaire automatiquement
    Par Skangell dans le forum IHM
    Réponses: 20
    Dernier message: 27/06/2008, 09h33
  4. Remplir un formulaire automatiquement
    Par lapras123 dans le forum C
    Réponses: 6
    Dernier message: 21/08/2007, 17h19
  5. [Formulaire]Remplir champs automatiquement
    Par goutbouyo dans le forum IHM
    Réponses: 5
    Dernier message: 30/03/2007, 17h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo