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

Développement Windows Discussion :

WebBrowser InvokeScript Compte utilisateur


Sujet :

Développement Windows

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Points : 67
    Points
    67
    Par défaut WebBrowser InvokeScript Compte utilisateur
    Bonjour à tous,

    J'ai une WindowsForm qui contient un webBrowser.
    Ce webBrowser affiche une page html (qui contient des fonctions js).

    J'ai simplifier mon problème à ces quelques lignes dans une autre Form et me provoque la même erreur.

    Je voudrais appeler une méthode js avec ma Form.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MessageBox.Show("toto");
                Object obj = _wbrows.Document.InvokeScript("test");//_nomFuncJavascriptAExec);
                MessageBox.Show(obj.ToString());
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function test() { return true; }
    Ces lignes fonctionnent lorsque je les appelle avec un compte administrateur MAIS lorsque je les appelle avec un compte basique seul le premier message s'affiche puis la console m'affiche :

    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
    Exception non gérée*: System.NullReferenceException: La référence d objet n est
    pas définie à une instance d un objet.
       à System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate metho
    d, Object[] args, Boolean synchronous)
       à System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
       à System.Windows.Forms.Control.Invoke(Delegate method)
       à ProjectTmpPreviewPdf.GenerationPdfFromCommande.MyThreadClass.exec() dans C:
    \_projets\c#\ProjectTmpPreviewPdf\GenerationPdfFromCommande.cs:ligne
     173
       à ProjectTmpPreviewPdf.GenerationPdfFromCommande.ThreadFunction() dans C:\_pr
    ojets\c#\ProjectTmpPreviewPdf\GenerationPdfFromCommande.cs:ligne 150
     
       à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       à System.Threading.ExecutionContext.runTryCode(Object userData)
       à System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCle
    anup(TryCode code, CleanupCode backoutCode, Object userData)
       à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionCon
    text, ContextCallback callback, Object state)
       à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, Co
    ntextCallback callback, Object state, Boolean ignoreSyncCtx)
       à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, Co
    ntextCallback callback, Object state)
       à System.Threading.ThreadHelper.ThreadStart()
    Je ne comprends pas d'où viens le problème et mon admin réseaux ne le voit pas non plus.

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Pour mieux cerner le problème, pourrais-tu essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int i ;
    Object obj;
    for (i=0;i<100;i++) 
    { 
       try
       { 
           Object obj = _wbrows.Document.InvokeScript("test");
            i+=1000
       }
       catch (Exception Ex) { Application.DoEvents() ; System.Threading.Thread.Sleep(20) ; }
    }
    MessageBox.Show(i.ToString()+":"+obj.ToString());
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Points : 67
    Points
    67
    Par défaut
    Ca ne passe jamais dans le try.
    Et je ne vois pas pourquoi ça fonctionne en admin et non en simple utilisateur.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Ton problème vient d'avant alors!
    Peut être devrais tu poster d'avantage de code?
    N'utilises tu pas un appel à un objet COM avant de faire ceci?
    Je vois notamment le namespace GenerationPdfFromCommande, la classe utilise une dll externe?

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Points : 67
    Points
    67
    Par défaut
    Oublie mon dernier post, j'ai fait une erreur dans l’exécution.
    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                try
                {
                    Object obj=null;
                    if(_wbrows!=null && _wbrows.Document!=null)
                        obj = _wbrows.Document.InvokeScript("test");//_nomFuncJavascriptAExec);
                    MessageBox.Show(obj.ToString());
                }
                catch(Exception f)
                {
                    MessageBox.Show(f.Message); 
                }
    Un message d'erreur s'affiche me disant que la référence d'objet n'est pas définie à une instance d'objet. Donc obj rest à null. Donc mon appel a ma fonction js ne me renvoi rien et ne me génère aucun message d'erreur.

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    The InvokeScript will do nothing if the user has explicitly turned off script execution in Internet Explorer, or if the current security configuration for the Web page does not allow it.
    C'est probablement là que réside la différence Admin vs User.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Points : 67
    Points
    67
    Par défaut
    En effet, j'ai fait un test, en mettant une fonction js qui fait un simple alert('toto') dans le fichier html afin de voire si le js s’exécutait et effectivement non.
    Je vais regarder si je peux faire quelque chose.

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

Discussions similaires

  1. [Comptes Utilisateurs] Affichage classique
    Par DarkOcean dans le forum Windows XP
    Réponses: 15
    Dernier message: 03/08/2009, 16h59
  2. Compte utilisateur sous XpPro, suppression fatale?
    Par sanson84 dans le forum Windows XP
    Réponses: 2
    Dernier message: 10/08/2005, 10h23
  3. [xp] compte passport et compte utilisateur local
    Par Eusebius dans le forum Windows XP
    Réponses: 5
    Dernier message: 06/07/2005, 13h59
  4. recuper compte utilisateur
    Par MadChris dans le forum MFC
    Réponses: 15
    Dernier message: 08/10/2004, 23h47

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