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 :

Comment connaitre le nom d'un formulaire (Composant TCppWebBrowser)


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut Comment connaitre le nom d'un formulaire (Composant TCppWebBrowser)
    Bonjour,
    Je suis sous C++ Builder 2010 et j'aimerais récupérer et remplir les champs d'un formulaire d'un forum.
    Suite a ce tuto :http://cpp.developpez.com/faq/bcb/?p...plirformulaire

    Je me pose la question :
    Comment savoir le nom d'un formulaire car dans le tuto,
    il y a marqué
    Le code suivant montre comment remplir les champs login et password d'un formulaire nommé connection, puis de soumettre le formulaire.
    Où trouve-t-on dans le code source de la page web le nom du formulaire ?
    Dans le tuto il se nomme connection, forcément quand je laisse connection dans le code ci-dessous il me met "Nom invalide".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Variant vDocument = brwInt->ControlInterface->Document;
    if (((IDispatch *)vDocument) != NULL)
    {
       Variant vForms = vDocument.OlePropertyGet("Forms");
       Variant vForm = vForms.OleFunction("NamedItem","connection");
       Variant vContent = vForm.OlePropertyGet("All");
       Variant vLoginField = vContent.OleFunction("NamedItem","login");
       Variant vPassField = vContent.OleFunction("NamedItem","password");
       vLoginField.OlePropertySet("Value","UnLogin");
       vPassField.OlePropertySet("Value","UnMotDePasse");
       vForm.OleProcedure("Submit");
    }
    Si quelqu'un aurait une solution
    Merci d'avance.

  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
    Par défaut
    Salut mimilooze
    Un lien sur le Forum qui completera ce que tu a trouve dans la FAQ

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Bonjour,
    merci pour ton lien mais je ne trouve rien qui peut m'aider?
    Je recherche juste en fait a me connecté à un forum.
    C'est a dire entrer mon nom d'utilisateur et mon mot de passe via une application, de là je pourrais faire autre chose.

    Mais je pense que le tuto que j'ai cité doit bien fonctionné mais je n'ai pas le nom du formulaire et je ne sais pas comment le connaitre.

    Si quelqu'un a une solution

  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
    Par défaut
    La variable "connection" est ce que ce ne serait pas l'adresse http://www._____ du site sur lequel tu te connecte

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Lorsque j'arrive a la ligne de code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variant vContent = vForm.OlePropertyGet("All");
    J'ai une erreur :
    Assertion failed : IsBound(), file C:\Builds\TP\emuvcl\utilcls.h, line 3608

    Le projet a déclenché la classe d'exception Exception Abort C/C++ ($40000015) avec le message 'system exception(code 0x40000015)at 0x76c8b727

  6. #6
    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
    Par défaut
    Un post sur lequel j'avais participe
    Apparemment ce serait bien provoque par un formulaire sans nom

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Je sais au moins d'ou viens l'erreur grâce à ton lien. Merci.
    Mais du coup dans le topic la personne dit qu'il n'y a pas de nom sur le formulaire.
    Donc je me suis dit je transforme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variant vForm = vForms.OleFunction("NamedItem","connection");
    en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variant vForm = vForms.OleFunction("NamedItem","");
    Et forcément il me met 'Argument non valide' ^^
    Je sais plus quoi faire.

  8. #8
    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
    Par défaut
    Le nom du formulaire tu le connait ?
    regarde si ceci le recupere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
     String vName2 = CppWebBrowser1->ControlInterface->get_LocationName();
    ou
     String vName3 = CppWebBrowser1->ControlInterface->get_LocationURL();
    }

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Avec vName2 et vName3 il me met :
    'Type de variable incorrect'

    Non je ne connais pas le nom du formulaire.
    Et je sais pas comment le trouvé

    J'ai écris plusieurs fois à l'auteur du tuto mais sans réponse...

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    J'ai crée une page html tout simple avec :
    - une zone de texte -> nom d'utilisateur
    - une zone de texte -> mot de passe
    - un bouton submit

    j'ai essayé avec cette partie de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	Variant vDocument = WebBrowser->ControlInterface->Document;
    			if (((IDispatch *)vDocument) != NULL)
    			{
    				Variant vForms = vDocument.OlePropertyGet("Forms");
    				Variant vLoginField = vForms.OleFunction("NamedItem","username");
    				Variant vPassField = vForms.OleFunction("NamedItem","password");
    				vLoginField.OlePropertySet("Value","mimilooze");
    				vPassField.OlePropertySet("Value","oceane");
    				vForms.OleProcedure("Submit");
    			}
    et avec cette même partie de code en changeant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variant vForms = vDocument.OlePropertyGet("Forms");
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variant vForms = vDocument.OlePropertyGet("Document");
    Lorsque je met Forms j'ai l'erreur :
    ssertion failed : IsBound(), file C:\Builds\TP\emuvcl\utilcls.h, line 3608

    Le projet a déclenché la classe d'exception Exception Abort C/C++ ($40000015) avec le message 'system exception(code 0x40000015)at 0x76c8b727
    et quand je met document, l'erreur :
    Nom inconnu
    Si quelqu'un comprend ces erreurs je suis preneur, car depuis quelques jours je patine dans la semoule

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Bonjour,
    Après plusieurs jours passé sur un forum anglophone.
    Certaines personnes m'on aidé a progresser dans ce que je voulais faire.

    voilà le code complet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Variant vDocument = WebBrowser->ControlInterface->Document;
    if (((IDispatch *)vDocument) != NULL)
    {
       Variant vForms = vDocument.OlePropertyGet("Forms");
       Variant vForm = vForms.OleFunction("item", 0, 0);
       Variant vContent = vForm.OlePropertyGet("All");
       Variant vLoginField = vContent.OleFunction("NamedItem","username");
       Variant vPassField = vContent.OleFunction("NamedItem","password");
       vLoginField.OlePropertySet("Value","MonNomdUtilisateur");
       vPassField.OlePropertySet("Value","MonMotDePasse");
       vForm.OleProcedure("Submit");
    }
    Pour les formulaire qui n'ont pas de nom il faut en fait mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variant vForm = vForms.OleFunction("item", 0, 0);
    à la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variant vForm = vForms.OleFunction("NamedItem","connection");
    Maintenant, j'ai un nouveau problème.
    Lorsque qu'arrive la ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vForm.OleProcedure("Submit");
    On dirait que la page rafraîchis, pourtant lorsque je l'a met en commentaire.
    Je vois bien sur la page que je le champ "nom d'utilisateur" et "mot de passe" sont correctement remplis, de plus lorsque je clique sur le bouton connexion, ça se connecte.
    J'ai l'impression que la fonction "Submit" ne fonctionne pas.

    Quelqu'un a une idée par rapport à ça ?

Discussions similaires

  1. comment connaitre le nom du serveur sql et la liste des bases
    Par inter_amine dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/04/2007, 18h32
  2. comment connaitre le nom de la procédure appelante
    Par korntex5 dans le forum Delphi
    Réponses: 5
    Dernier message: 23/06/2006, 14h59
  3. Réponses: 1
    Dernier message: 04/05/2006, 08h20
  4. Comment connaitre les noms de variables
    Par gwendy dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2006, 11h51
  5. Comment connaitre le nom du pilote de ma carte son ?
    Par Le Pharaon dans le forum Windows XP
    Réponses: 7
    Dernier message: 08/11/2005, 15h48

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