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

Windows Forms Discussion :

[C#]Quand mon objet axWebBrowser est-il supprimé ?


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de Kcirtap
    Inscrit en
    Juillet 2005
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 553
    Points : 523
    Points
    523
    Par défaut [C#]Quand mon objet axWebBrowser est-il supprimé ?
    Bonjour,

    j'ai créé un petit application qui génère des fichiers Excel et les affiche à l'aide d'un objet axWebBrowser dans une fenêtre Windows.

    Pour améliorer les performances, j'enregistre les fichiers Excel en cache sur le disque avant de les afficher avec axWebBrowser.

    Je désire également "nettoyer" le cache disque des fichiers Excel générés précédemment.
    J'ai créé une fonction qui supprime tous les fichiers Excel, mais elle génère une erreur pour le fichier affiché dans mon composant axWebBrowser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The process cannot access the file "C:\Temp\OS.xls" because it is being used by another process.
    J'ai remarqué qu'à l'affichage d'un fichier Excel par axWebBrowser, un processus Excel.exe est lancé. Lorsque j'affiche une autre page, par exemple une page html classique, ce processus reste "vivant"...

    Comment puis-je faire pour supprimer ces fichiers ? Faut-il que je "tue" mon axWebBrowser avant ?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Pour que le processus Excel disparaisse, tu dois:
    - fermer ton application
    - kille rton processus Excel.exe

    Même si normalement, il devrait se fermer automatiquement quand tu fermes Excel.

    Comment génères-tu tes fichiers Excel ?

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    J'ai noté un problème similaire sous VS 2005 beta2 :
    • un formulaire en instancie un autre qui contient un composant WebBrowser
    • Lorsque ce second formulaire est fermé, une exception est lancée.

    Le message d'erreur mentionnait un problème de corruption de mémoire et après quelques tâtonnements, j'ai réalisé qu'en appelant la méthode Dispose() du second formulaire après l'avoir fermé (ou en l'ouvrant dans un bloc 'using'), le problème disparaissait...

  4. #4
    Membre confirmé Avatar de Kcirtap
    Inscrit en
    Juillet 2005
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 553
    Points : 523
    Points
    523
    Par défaut
    Citation Envoyé par Morpheus
    Comment génères-tu tes fichiers Excel ?
    Salut Morpheus,

    Je génère mes fichiers Excel avec... Excel.
    Pour être plus précis, j'automatise la création de mon fichier Excel, les modifications et l'enregistrement à partir de mon code C# dans une classe destinée à la gestion des fichiers Excel.

    Je ne rencontre pas de problème dans ladite classe avec le processus Excel car avant l'instanciation de l'application Excel, je liste tous les processus. Juste après l'instanciation, je fais la même chose et en comparant les listes de processus, je peux repérer celui correspondant à Excel et le supprimer lorsqu'il ne m'est plus utile.

    J'ai essayé d'appliquer la même méthode lorsque j'affiche mon fichier .xls dans l'axWebBrowser, mais en vain.

    Je continue mes recherches, merci pour ton aide.

  5. #5
    Membre confirmé Avatar de Kcirtap
    Inscrit en
    Juillet 2005
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 553
    Points : 523
    Points
    523
    Par défaut
    Citation Envoyé par Wyatan
    Le message d'erreur mentionnait un problème de corruption de mémoire et après quelques tâtonnements, j'ai réalisé qu'en appelant la méthode Dispose() du second formulaire après l'avoir fermé (ou en l'ouvrant dans un bloc 'using'), le problème disparaissait...
    Salut Wyatan,

    je regarde si je peux faire quelque chose avec Dispose() et te redis.

    Merci

  6. #6
    Membre confirmé Avatar de Kcirtap
    Inscrit en
    Juillet 2005
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 553
    Points : 523
    Points
    523
    Par défaut
    Effectivement Wyatan, la méthode Dispose() appliquée au conteneur de mon axWebBrowser (en l'occurence un Panel) tue le processus Excel lié au browser. 8)



    Bonne journée

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

Discussions similaires

  1. Exécuter un cron job quand mon pc n'est pas allumé
    Par Ismatus1 dans le forum Linux
    Réponses: 7
    Dernier message: 11/11/2011, 18h04
  2. Réponses: 4
    Dernier message: 16/06/2011, 23h36
  3. Réponses: 5
    Dernier message: 10/06/2011, 12h00
  4. Quand mon site n'est pas chargé depuis le HTML
    Par Gregi dans le forum Intégration
    Réponses: 0
    Dernier message: 02/01/2010, 22h43
  5. Réponses: 4
    Dernier message: 28/09/2006, 14h50

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