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

WinDev Discussion :

Objet Internet Automation impossible dans un thread! [WD17]


Sujet :

WinDev

  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut Objet Internet Automation impossible dans un thread!
    Bonjour à tous!

    ou plutôt bonsoir (je viens juste de me rendre compte qu'il fait nuit : merci à l'objet internet automation)

    Pourquoi le code suivant fonctionne t'il sans aucun problème lorsqu'il n'est pas dans un thread?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    OInternet est un objet Automation "InternetExplorer.Application"
    OInternet>>Navigate(sURL)
    TANTQUE OInternet>>ReadyState <> 4
    	Multitâche(-20)
    FIN
    // innerHTML page affichée avec interprétation javascript
    sResultat = OInternet>>document>>body>>innerHTML
    si je mets le code dans un thread, j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur à la ligne 160 du traitement Procédure locale Checking_state.
    Vous accédez au membre Automation ReadyState.
    Erreur 800401FD
    Merci par avance!

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut!

    Est-il possible que ce problème et le mien soient liés concernant l'objet IE ?

    Probleme-activex-ie-web-browser-executetraitement

    Merci ...

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut!

    Je n'ai toujours pas eu de solution quand à l'implémentation dans un thread!

    Une idée ne serait pas de refus

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Un thread ne peut pas interagir avec l'interface. Partant de ce postulat, tu peux envoyer des "messages" au processus principal afin qu'il modifie l'affichage.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour !
    Citation Envoyé par zouzoukha Voir le message

    Je n'ai toujours pas eu de solution quand à l'implémentation dans un thread!

    Une idée ne serait pas de refus
    As-tu essayé le "remède Thread COM" donné en annotation de la doc en ligne.
    Là tu es dans un contexte Automation, donc ActiveX, donc Windows COM.

    Au début de votre Thread
    API("Ole32.DLL","CoInitializeEx",Null,0) // Appel à la fonction : initialisation de la bibliothèque COM

    Déclaration de votre objet DCOM
    Utilisation de votre objet
    Libération de votre objet

    A la fin de votre Thread

    API("Ole32.DLL","CoUninitialize") // Toujours accompagné un "CoInitializeEx" par "CoUninitialize" !
    Source:
    http://doc.pcsoft.fr/fr-FR/?objet_au...munity-content

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Bonjour à tous!

    @OnePoint Désolé du retard de ce post que j'avais oublié.

    Le problème s'étant répété les recherches me ramènent ici une fois de plus

    Le remède Thread com est magistral!

    Mon problème est bel et bien résolu!

    Un grand merci!

    Juste une dernière question? En terminant mon thread, l'instance internet explorer (la fenêtre) est présente. Comment la fermer?

    Merci encore une fois!

  7. #7
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut,

    J'ai beau utiliser >>visible=faux je nevois plus le navigateur ie mais dans le gestionnaire de tâches j'ai plus de 6 instances de ie.

    A chaque utilisation de l'activeX il ouvre une instance!

    La fonction Libérer ne semble pas fonctionner sur l'activex ie, il réclame un objet dynamique

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

Discussions similaires

  1. Impossible d'afficher une Alert Dialog dans un thread!
    Par User Name dans le forum Composants graphiques
    Réponses: 8
    Dernier message: 07/01/2013, 23h24
  2. Création d'objets dans un thread
    Par atum25 dans le forum Threads & Processus
    Réponses: 10
    Dernier message: 11/07/2012, 09h12
  3. Instanciation d'objet dans un thread : déconseillé ?
    Par SQUAL dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 12/04/2012, 21h09
  4. Perte d'informations d'un objet initialisé dans un thread
    Par Progs dans le forum Threads & Processus
    Réponses: 4
    Dernier message: 21/11/2005, 20h17
  5. impossible d'utiliser un HWND parent dans un thread
    Par sylvain114d dans le forum Windows
    Réponses: 12
    Dernier message: 23/09/2004, 12h21

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