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

Contribuez Discussion :

Intégrer le navigateur Chromium (Chrome) dans une fenêtre Windev avec CefSharp


Sujet :

Contribuez

  1. #21
    Membre actif
    Inscrit en
    Août 2005
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 96
    Points : 205
    Points
    205
    Par défaut CefSharp en 64 bits
    Citation Envoyé par bugnet Voir le message
    Bonjour,

    Je me permet de re-soumettre ma question, car je ne trouve vraiment pas comment m'y prendre :

    J'ai réussi à suivre ce tuto (hyper clair, merci) pour ajouter Chromium dans une de mes appli, afin d'y inclure CK Editor. Tout marche bien en 32 bits.

    Mais je dois livrer mon appli en version 32 et 64 bits. Je n'arrive pas à trouver quels fichiers inclure en 64 bits. En espérant que ce soit possible, sinon je suis marron.

    Merci pour votre aide
    Franck
    Je dirais qu'il faut simplement recompiler le projet CefSharp en version x64.

    Des explications simples pour tester CefSharp avec Visual Studio sont disponibles ici : http://www.codeproject.com/Articles/...using-CefSharp.

    Voici tout de même les fichiers pour CefSharp 47 64 bits (Attention, j'ai pas testé) : https://mon-partage.fr/f/5WRqqUBb/

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Bonjour et merci pour le tuto

    est il possible d'utilisé cette méthode sans être obligé d'installé Chrome ou Chromium ?

    Autre point,

    je est il possible d'appeler une fonction javascript dans le HTML et récupérer le résultat (ça sera une chaine de caractèresdans mon cas) ?


    Cordialement.

  3. #23
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par bastiencb Voir le message
    Je dirais qu'il faut simplement recompiler le projet CefSharp en version x64 […]
    Merci Bastien,
    C'est ce que je pensais, mais pas sûr de savoir faire. Compiler avec quoi (visual Studio ?), quels fichiers ? et dans quel format de sortie ?
    Désolé pour ces questions sans doute stupides, mais je suis un pur programmeur Windev et n'ai jamais compilé de DLL, de package , d'API ou autre trucs du genre.

    Autre question : pour récupérer le contenu HTML de l'éditeur CKEditor placé dans le WinForm, j'utilise cet appel Javascript:
    Code Windev : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sJavascript = [
    	CKEDITOR.instances.editora.getData();
    ]
    EvaluateJsAsync(_oBrowser,sJavascript)

    Cela déclenche "EvaluateJsDone" lorsque le résultat est prêt. Mais l'exécution du code Windev n'attend pas lui, il continue. Or les lignes suivantes sont celles du traitement du résultat et elles sont exécutées avant que ce résultat ne soit disponible.
    Je cherche moment faire pour que la suite du code Windev ne s'exécute que lorsque EvaluateJsDone est terminé.

    Bricolage:
    J'ai essayé avec un TANTQUE et une condition sur la valeur resultat non vide. Mais cela génère des crash Windows (boucles infinies par moment)
    J'ai essayé avec une BOUCLE(x), guère mieux.

    En fait il me faudrait, comme en programmation AJAX, pouvoir mettre mon code de traitement du résultat dans une fonction dite "callback" et je ne vois pas comment faire.

    Il faudrait en plus que tant que la fonction callback n'est pas terminée, aucune autre action utilisateur ne soit possible sur l'interface. Ça non plus je ne sais pas comment faire.

    Une idée ?

    Cordialement,
    Franck.

  4. #24
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Bonjour Franck,

    Le javascript est asynchrone et donc lorsque tu exécutes du code Javascript, tu ne sais pas quand cela sera traité et quand tu auras ta réponse.

    Tu as 2 possibilités :

    • soit le gérer dans Windev au déclenchement de l’événement de retour (en gros tu définis tes enchainements et ton retour passe à la commande suivante).
      Il y a un identifiant dans le lancement Javascript qui te permettra d'identifier précisément de quelle réponse il s'agit.
    • soit tu le gères dans la librairie .Net en ajoutant une synchronisation du retour Javascript. Sauf que si tu n'as pas de TimeOut, ta demande peut rester bloquée ... il faut donc quand même avoir un TimeOut même long.
      Pour cela, il faut indiquer la durée du TimeOut à la fonction EvaluateScriptAsync et utiliser le TaskScheduler du .Net
      Le retour se fera alors en direct puisque tu ne gères plus ça en asynchrone mais en synchrone ... Ton appel Javascript aura donc directement sa réponse.
      Du coup ton code de type procédural fonctionnera parfaitement bien !

    Si tu as besoin, je peux te compiler une partie de ma libraiire avec cette fonctionnalité (si c'est le cas, donne moi la version de CEFSharp que tu utilises).

  5. #25
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par lemazol Voir le message
    Bonjour Franck,

    Le javascript est asynchrone et donc lorsque tu exécutes du code Javascript, tu ne sais pas quand cela sera traité et quand tu auras ta réponse.

    Tu as 2 possibilités :

    • soit le gérer dans Windev au déclenchement de l’événement de retour (en gros tu définis tes enchainements et ton retour passe à la commande suivante).
      Il y a un identifiant dans le lancement Javascript qui te permettra d'identifier précisément de quelle réponse il s'agit.
    • soit tu le gères dans la librairie .Net en ajoutant une synchronisation du retour Javascript. Sauf que si tu n'as pas de TimeOut, ta demande peut rester bloquée ... il faut donc quand même avoir un TimeOut même long.
      Pour cela, il faut indiquer la durée du TimeOut à la fonction EvaluateScriptAsync et utiliser le TaskScheduler du .Net
      Le retour se fera alors en direct puisque tu ne gères plus ça en asynchrone mais en synchrone ... Ton appel Javascript aura donc directement sa réponse.
      Du coup ton code de type procédural fonctionnera parfaitement bien !

    Si tu as besoin, je peux te compiler une partie de ma libraiire avec cette fonctionnalité (si c'est le cas, donne moi la version de CEFSharp que tu utilises).
    Merci, super sympa ta proposition. J'accepte avec plaisir car la gestion de l'asynchrone via Windev, je n'y arrive pas.
    Pour l'instant j'utilise la version 43 en 32 bits de CEFSharp, mais peut m'importe le version en fait, je n'ai pas regardé les différences avec les versions plus récentes comme la 47. J'ai juste besoin de mettre CKEditor dans un Browser Chrome dans un onglet dans une fenêtre Windev et ça fonctionne avec la version 43 mais sans doute aussi avec les autres. Et la librairie sera livrée avec mon appli.
    Par contre, j'ai besoin aussi de sortir mon appli en version 64bits comme indiqué dans mon post précédent. Donc si tu peux me compiler la librairie en 32 et 64 bits ce serait vraiment génial.

    As tu besoin de mon e-mail perso ?

    Crdlt
    Franck

  6. #26
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Je vais mettre les fichiers ici pour tout le monde ... Bastien & Ochoteau nous ont aidé, si à mon tour je peux faire la même chose ...

    Par contre la version est importante car il y a un test de version au moment du chargement (ou de l'exécution je ne sais plus) du .Net.

    Si tu veux, je peux te mettre un zip avec tous les fichiers dedans, y compris un projet basique.
    La version 47 est très stable, j'ai rencontré quelques soucis avec la 49 et 51, donc il est préférable d'avoir la 47 pour le moment.

    64 bits ... oui c'est juste une option de compilation, il faut que je regarde mais ça ne doit pas poser de problème.
    Actuellement je l'utilise en 32 dans des environnements 64.

    Dis-moi ce que tu préfères ... et laisse moi un peu de temps pour préparer tout ça car là je suis en plein boulot ... d'ici ce soir, je vais bien trouver 5 minutes pour faire ça.

  7. #27
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par lemazol Voir le message
    Je vais mettre les fichiers ici pour tout le monde ... Bastien & Ochoteau nous ont aidé, si à mon tour je peux faire la même chose ...

    Par contre la version est importante car il y a un test de version au moment du chargement (ou de l'exécution je ne sais plus) du .Net.

    Si tu veux, je peux te mettre un zip avec tous les fichiers dedans, y compris un projet basique.
    La version 47 est très stable, j'ai rencontré quelques soucis avec la 49 et 51, donc il est préférable d'avoir la 47 pour le moment.

    64 bits ... oui c'est juste une option de compilation, il faut que je regarde mais ça ne doit pas poser de problème.
    Actuellement je l'utilise en 32 dans des environnements 64.

    Dis-moi ce que tu préfères ... et laisse moi un peu de temps pour préparer tout ça car là je suis en plein boulot ... d'ici ce soir, je vais bien trouver 5 minutes pour faire ça.
    La version 47 me va très bien si il suffit que je télécharge la version 47 de CESharp elle remplace la 43.
    Certains de mes client sont en Win 32 bits et donc pour eux je n'ai pas le choix et pour ceux qui sont en 64 bits, on a vu de rééls avantages a utiliser une version 64bits, en particulier dans la gestion mémoire pour le traitement de très gros fichiers Excel lues par l'appli. Si je n'ai pas le choix ils n'auront plus que du 32bits, mais ce serait un peu dommage.

    Encore un GROS MERCI à toi et Bastien & Ochoteau

  8. #28
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Allez je t'emballe tout ça ce soir en version 47 avec la 32 et 64 bits.

    Tu n'auras plus qu'a faire un copier/coller ...

    Je mettrai le zip sur mon site pour que tout le monde puisse l'utiliser. Je te mets le lien ici dès que c'est prêt.

    Ma méthode d'appel de Javascript est différente ... mais je mettrai un exemple de Javascript asynchrone et synchrone dedans, tu comprendras vite comment ça marche !

    PS : Le projet Windev sera avec la dernière version 21

  9. #29
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Je suis resté en WD20, je ne pourrai donc pas ouvrir le project exemple.
    J'abuse si je te demande de faire dans ta réponse un copier coller des bouts de code Windev des appels Javascript, comme l'a fait Bastien ?

    Crdlt
    Franck

  10. #30
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Je crois que j'ai viré la version 20 de mes postes de dév. car c'est une version que je n'utilise plus.

    Mais je te donnerai l'explication de son utilisation ici ... c'est très simple tu verras.

    Ajout : Oups ... tu as de la chance ! Il me reste une version 20 ! Je te prépare donc ça en v20 !

  11. #31
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Hello Franck,

    Désolé pour hier soir mais j'avais oublié que j'avais une soirée.

    Le projet est en Windev v20 Windev 21, il contient la version 32 et 64 bits de Chromium que tu peux télécharger ici : http://www.3po.fr/pcsoft/_3pO_Chromium.zip

    En plus du Javascript Synchrone et Asynchrone, j'ai ajouté CKEditor, Flash et le PDF, le tout avec des onglets dynamiques. Deux boutons te permettent de tester le javascript.

    ATTENTION ! Cette satanée version 20 ne permet pas d'avoir un .Net 32 et 64 bits dans le même projet (pas de distinction possible dans la configuration). Il te faut donc mettre à jour le package .Net dans le répertoire de l'exécutable 64 bits car Windev met le 32 bits ! Et également ... Il faut bien mettre la DLL WD200Net4.DLL ou WD200Net4_64.DLL WD210Net4.DLL ou WD210Net4_64.DLL dans le répertoire de l'exécutable sinon tu auras une erreur.

    Bien sûr si tu oublies tout ça, c'est géré dans une exception donc il te dira quoi faire.

    Auparavant il faut bien installer le Microsoft Visual (ça je ne l'ai pas testé pour ne pas mettre en vrac un de mes postes de dév) ... j'ai mis les versions 32 et 64 dans le répertoire de l'application.

    Bon ... tout est testé (32 et 64 bits) et tout marche très bien de mon coté (comme à mon habitude !). Donc si tu as un problème, c'est certainement chez toi !

    Mon code est très simple et ne nécessite aucune connaissance du .Net.

    Amuse toi bien, Patrick

    Correction : Les DLL sont : WD200Net4.DLL ou WD200Net4_64.DLL (j'avais oublié le 4)

    [Edit] Le projet est maintenant en version 21

  12. #32
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Ah j'oubliai ...

    Pour le Javascript :

    2 méthodes : "Sans_Attente" et "Avec_Attente"

    Paramètres : Sans_Attente(Source_Javacript[,Identifiant])
    L'identifiant est numérique, si non renseigné alors il est égal à 0
    Le retour se fait dans l'événement : Javascript_Asynchrone.

    Paramètres : Avec_Attente(Source_Javacript[,Délai])
    Le délai est en millisecondes, si non renseigné alors il est égal à 5000
    Le retour se fait directement à la sortie de la méthode.

    Le délai est le timeout de sortie du Javascript pour ne pas attendre toute ta vie la réponse ... Si le délai est dépassé le résultat sera alors NULL

  13. #33
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Merci infiniment.
    Je télécharge et essaie tout ça.

    Oui j'avais vu qu'il n'était pas possible de choisir les .NET selon la configuration 32 ou 64 du projet. Pénible ce truc, il va falloir le refaire avant chaque compilation de nouvelle version.
    Sur W21 ça à l'air possible d'après ce que je crois comprendre de ton mail ? Pas sur que ça vaille les 1000€ de mise à jour (les autres nouveautés ne m'ont pas trop inspiré), j'attendrai la 22.

    Faut il aussi que sur les postes clients soit installé le Visual Basic redistribuable ? Si oui, sais tu si on peux l'inclure dans le pack d'installation de l'appli Windev, pour que celui ci s'occupe de tout ?

    Crdlt
    Franck

  14. #34
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Oui dans la V21 on peut exclure de la configuration des .Net ... donc ça doit être possible, je ferai un test ce week-end.

    Pour l'installation du vcredist_x86.exe (Visual C++ et non visual Basic), utilise la commande suivante : vcredist_x86.exe /install /quiet /norestart

  15. #35
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Patrick, CA MARCHE !

    J'ai mis un peu de temps à implémenter ta méthode dans mon appli, mais ça semble fonctionner. Je ne sais pas comment tu as réussi a transformer un appel Javascript en appel synchrone, mais chapeau.

    J'ai juste pour l'instant des instabilités que j'essaie de comprendre, qui arrivent quand j'enchaine plusieurs appels de suite, avec ce type de message d'erreur :

    Le framework .NET a renvoyé l'erreur suivante :
    Une exception a été levée par la cible d'un appel.

    Code erreur : 200007
    Niveau : erreur fatale (EL_FATAL)

    Dump de l'erreur du module 'wd200net4_64.dll' (20.0.8.0).
    Identifiant des informations détaillées (.err) : 200007
    Informations de débogage :
    System.Reflection.TargetInvocationException: Une exception a été levée par la cible d'un appel. ---> System.AggregateException: Une ou plusieurs erreurs se sont produites. ---> System.AggregateException: Une ou plusieurs erreurs se sont produites. ---> System.Threading.Tasks.TaskCanceledException: Une tâche a été annulée.
    --- Fin de la trace de la pile d'exception interne ---
    à System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
    à _3pO.Javascript.<>c__DisplayClass4.<Avec_Attente>b__3(Task`1 t)
    à System.Threading.Tasks.Task.Execute()
    --- Fin de la trace de la pile d'exception interne ---
    à System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
    à System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
    à _3pO.Javascript.Avec_Attente(String Script, Int32 Millisec)
    à _3pO.Javascript.Avec_Attente(String Script)
    --- Fin de la trace de la pile d'exception interne ---
    à System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
    à System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
    à System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    à System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
    à CDotNetType.bInvoke(CDotNetType* , Object gcrObj, Char* pszNomMethode, CSLevel* pclPile, Int32 nNbParamPile, Int32 bValeurRetour, STOperationDotNet* pstOperation)
    à CDotNetType.bInvoke(CDotNetType* , Object gcrObj, STMethodeDotNet* pstMethode, UInt32* pdwIdentifiant, CSLevel* pclPile, Int32 nNbParamPile, Int32 bValeurRetour, STOperationDotNet* pstOperation)
    à CDotNetInstance.bAppelleMethode(CDotNetInstance* , STMethodeDotNet* pstMethode, UInt32* pdwIdentifiant, CSLevel* pclPile, Int32 nNbParamPile, Int32 bValeurRetour, STOperationDotNet* pstOperation)
    Le 1er appel (1 remplissage puis une lecture du contenu du CKEditor), se passe bien le second aussi, le 3ieme met un peu plus de temps, le quatrième encore plus de temps et le cinquième plante avec ce message au bout de plusieurs seconde. Comme si entre chaque appel on avait de moins en moins de mémoire.

    Pour comprendre, j'ai ensuite simplement mis ce code dans un bouton, dans la même appli:

    Code Windev : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sJavascript est une chaîne
    sJavascript = "CKEDITOR.instances.editora.setData('"Mon texte"');"
    sRésultat est une chaîne = obj_javascript.Avec_Attente(sJavascript)

    Premier clic sur le bouton, le texte s'affiche bien dans le CKEditor, second clic idem, troisième je note un léger ralentissement, quatrième clic, franchement plus lent etc... et plantage avec la même erreur au bout du 5ième ou 6ième.
    Appli en 64 bits.

    J'ai fait strictement la même chose dans une autre appli très similaire, mais en 32bits et la pas de ralentissement et pas de plantage. Donc soit
    -c'est un pb lié au code de mon appli
    -soit je n'ai pas implémenté ta méthode à l'identique entre les deux applis (pourtant je n'ai fais que des copier coller entre les deux)
    -soit enfin, c'est un bug propre aux dll en 64 bits.

    Etape suivante du débug. J'ai recompilé mon appli 64bits en 32bits, avec bien sur les dll 32bits et reproduit la même série de clic sur le bouton de remplissage du CK => même résultat, plantage après ralentissements de plus en plus importants...

    Donc ce n'est pas une histoire de 32 ou 64 bits, mais un pb bien spécifique à cette appli. Mais je ne vois vraiment pas ce que cela peut être....

    Edit (1h du mat) : Je viens de voir que cela est lié à CKEditor lui même, le problème disparait si j'utilise le CKEditor de base (le même que sur ton exemple) et non pas celui de mon site (qui est rempli de plugins).
    Peut être tout simplement le module de cache du CKEditor...
    Je verrai cela demain. Dodo.

    Autre chose, est ce possible de voir le code de tes dll afin de mieux comprendre comment ça fonctionne, voir débuger moi même (et éventuellement un jour les adapter à un nouveau besoin) ?

    Encore une fois merci à tous les contributeurs de ce post. Super boulot.

    Cordialement,
    Franck

  16. #36
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Très bonne nouvelle Franck !

    Quand j'ai réalisé mes tests, mon code Javascript était bien fait et ne posait aucun problème mais c'était sans oublier les anomalies (parfois volontaires) des autres applicatifs comme dans ton cas CKEditor. Et j'ai oublié la règle d'or : ne jamais faire confiance aux autres applicatifs !

    Je vais donc ajouter une gestion d'exception (problème que tu as) dans ma classe Javascript afin de la remonter dans Windev/WebDev, comme ça tu pourras directement gérer les anomalies du Javascript.

    Reste plus qu'à mettre des bugs dans mes tests Javascript pour tester ça .... hum c'est pas commun ça !

    Je me mettrai une correction ici prochainement.

    Un petit truc que j'ai ajouté dans mon projet (je ne l'ai pas mis à jour sur mon site), mais qui peut t'aider et même beaucoup t'aider ... c'est le debugger de Chromium.
    Il te suffit par exemple d'ajouter un bouton dans ma page interne avec comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowserExtensions.ShowDevTools(Navigateur)
    Encore une des nombreuses possibilités de cette implémentation ! Et je peux te dire que j'ai pas mal bossé sur la question et que tu n'imagines certainement pas ce que l'on peut faire avec ... mais pour faire simple, c'est absolument tout ce que fait un vrai navigateur mais en mieux ... beaucoup mieux !!!

    Patrick

    [Edit] L'implémentation est différente en v20 ... j'ai corrigé la ligne de code

  17. #37
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par lemazol Voir le message

    Un petit truc que j'ai ajouté dans mon projet (je ne l'ai pas mis à jour sur mon site), mais qui peut t'aider et même beaucoup t'aider ... c'est le debugger de Chromium.
    Il te suffit par exemple d'ajouter un bouton dans ma page interne avec comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Navigateur.ShowDevTools()
    Patrick
    Le compilateur répond que "L'élément 'ShowDevTools' n'existe pas dans la classe 'ChromiumWebBrowser"
    Je suis allé regarder les membres de cette classe, il y a un show(), mais pas de ShowDevTools() en effet. Par contre le nombre de fonctions disponibles est assez incroyable.

    Sinon j'ai corrigé mon bug dans mon appli 64bits, ça fonctionne nickel à présent.
    Le bug venait du fait que par erreur j'avais mis deux fois fois la même ligne de remplissage du CKEditor avec mon texte dans ma routine (donc deux appels javascript avec attente, avec un setData() sur l'objet CKEditor, quasiment l'un à la suite de l'autre). Je ne sais pas pourquoi, mais il aime pas du tout. Bon à savoir.

    Tu ne m'as pas répondu Patrick sur cette question : est il possible de voir le code de tes dll, ou mieux encore d'avoir le jeux de fichiers à compiler ? cela me permettrait de comprendre comment tu as fait cet outil génial et me coucher moins bête. Et peut être un jour d'être moi même capable de contribuer aussi... Je sais toujours pas compiler des dll.

    Cdlt
    Franck

  18. #38
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Oups .... J'ai corrigé le message précédent.

    Il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowserExtensions.ShowDevTools(Navigateur)
    [Edit] Le problème est que je bosse sur une version 21 ... du coup je ne regarde pas sur la v20 si c'est identique car pour moi ça devrait l'être, mais ce n'est toujours pas le cas ! Cette implémentation marchera en v21 aussi donc pas de souci.

  19. #39
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Ah oui génial le DevTools (équivalent d'un Firebug pour Firefox que je connais mieux). Avoir cela dans une appli Windev, ça ouvre plein de perspectives...

  20. #40
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Je savais que ça te plairais !

    Voici ma nouvelle DLL => _3pO.dll.zip

    J'ai ajouté la gestion des exceptions sauf que j'ai du mal à générer une exception en dehors d'une erreur Javascript prise en charge. Je te laisse donc tester ça avec les plantages que tu avais. En théorie, ça doit remonter une exception si il y a un problème, il faut faire un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    QUAND EXCEPTION DANS
    	Résultat est une chaîne = Javascript.Avec_Attente(Calcul)
    FAIRE
    	// Traitement de l'exception ...
    FIN
    Je pense que maintenant tu n'auras plus d'erreur de ce type.

    De plus, j'ai recompilé ma DLL en vrai version 64 bits ... je pense aussi ça ira mieux. Dans le zip, tu as donc les deux (x86 et x64).
    A remplacer dans le projet et faire un "Recharger les assemblages".

    Tiens moi au courant ...

Discussions similaires

  1. [.NET / XAML] Chromium dans une application WinDev
    Par Gaautman dans le forum WinDev
    Réponses: 43
    Dernier message: 22/02/2017, 17h58
  2. [WD14] Comment insérer une animation flash dans une fenêtre Windev ?
    Par samoel24 dans le forum WinDev
    Réponses: 6
    Dernier message: 20/08/2013, 15h49
  3. Utilisé Tix dans une fenêtre crée avec Tkinter
    Par Jiyuu dans le forum Tkinter
    Réponses: 4
    Dernier message: 07/02/2008, 17h45
  4. [WINDEV 8] Lancer un exe dans une fenetre windev
    Par momobulle dans le forum WinDev
    Réponses: 7
    Dernier message: 30/08/2007, 13h42
  5. intégrer le résultat de sp_spaceused dans une table
    Par Labienus dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/11/2005, 09h18

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