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

MFC Discussion :

[MFC] DLL - récupérer le Handle de l'appli principale


Sujet :

MFC

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par défaut [MFC] DLL - récupérer le Handle de l'appli principale
    Bonjour,

    Je développe une DLL qui est utilisée par une application.

    Est-il possible de récupérer dans le code de ma DLL le Handle de l'application principale ? Il y a la variable m_hWnd, membre de la classe CWnd, mais je ne sais pas comment l'utiliser.

    De plus, ma DLL fait apparaître une boîte de dialogue. Est-ce que les Handle concernent également les boîtes de dialogue ou seulement les fenêtres ? Comment récupérer le Handle de ma boîte de dialogue ?

    Merci

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    tu peux passer à ta dll le handle de ta fenetre principale, c'est la meilleur facon pour connaitre le handle.

    Pour récuperer le handle d'une boite de dialogue crée dans une dll, c'est le meme principe que dans le contexte d'un executable

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par nico-pyright(c)
    tu peux passer à ta dll le handle de ta fenetre principale, c'est la meilleur facon pour connaitre le handle.

    Pour récuperer le handle d'une boite de dialogue crée dans une dll, c'est le meme principe que dans le contexte d'un executable
    c'est ce que je t'ai suggéré dans ton autre post ....

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    ah bon ? y a multi post ? alors ...

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par défaut
    Citation Envoyé par nico-pyright(c)
    tu peux passer à ta dll le handle de ta fenetre principale, c'est la meilleur facon pour connaitre le handle.
    Mais c'est exactement ce que je veux faire ! Et comme je ne sais pas comment faire, et que c'est une autre question, j'ai ouvert une nouvelle discussion. Ce n'est pas un multi-post !

    Comment récupérer le Handle de la fenêtre principale ?

    Grâce à ça, je pourrai essayer la solution de Farscape à mon autre question.

    Merci !

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    comme tu le disais, tu as une variable m_hWnd dans ton appli principale. Tu la fais passer à ta dll, je veux dire par là que tu crées une méthode dans ta dll (genre, un SetHwnd(m_hWnd)), ce qui te permet de la connaitre dans la dll

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    la question qu'elle le type d'application qui fait l'appel de la dll ?
    du vb ? du vc ?
    vc c'est très simple AfxGetMainWnd()->GetSafeHwnd().


  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    avec VB aussi c'est facile ... mais chuuuut ... c'est un secret

  9. #9
    Membre éclairé
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par défaut
    Citation Envoyé par farscape
    la question qu'elle le type d'application qui fait l'appel de la dll ?
    du vb ? du vc ?
    vc c'est très simple AfxGetMainWnd()->GetSafeHwnd().
    Merci, c'est très certainement ce qu'il me faut. Dommage que ce soit un secret en VB, car ça me serait également utile.

    Architecture: J'utilise une API qui me permet d'ajouter des fonctionnalités dans une application (un exe dont je n'ai pas le code source). J'ai fait une DLL VB qui est chargée par l'application. J'ai fait une autre DLL en C++ (MFC) dans laquelle il y a mes boîtes de dialogue. La DLL VB appelle des fonctions de la DLL C++ qui affichent des boîtes de dialogue.

    Question: Quand je fais AfxGetMainWnd()->GetSafeHwnd(), est-ce que je reçois le Handle sur la boîte modale C++, ou sur la fenêtre principale ?

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    il faut d'abord que tu repondes a ma question ton application c'est quoi ? du vb? ou du vc ?
    il faudra que tu fasses suivre le handle de l'application a travers l'enchainement des dll....

  11. #11
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    enfin, apparement, il parle d'une appli dont il a pas les sources. Ca va etre difficile d'invoquer la dll depuis cette appli.

    Dans ces cas là, il faut retrouver le handle à partir de la fenetre (a partir de son nom , ou si elle a le focus, etc ...)

  12. #12
    Membre éclairé
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par défaut
    Je n'ai aucune information sur la structure interne de l'application (l'exe) pour laquelle je développe des fonctionnalités par le biais de mes DLL. Je ne sais pas avec quel langage ça a été développé. L'API dont je dispose me permet de capter des évènements, d'ajouter des entrées dans les différents menus,...

  13. #13
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    alors il te faut chercher la fenetre sur le bureau :
    http://c.developpez.com/faq/vc/?page...dWindowDesktop

  14. #14
    Membre éclairé
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par défaut
    Citation Envoyé par nico-pyright(c)
    Dans ces cas là, il faut retrouver le handle à partir de la fenetre (a partir de son nom , ou si elle a le focus, etc ...)
    Ca me convient. Et pour le coup, je sais le faire aussi bien avec VB que VC (enfin j'espère), en utilisant FindWindow

    Dernier point au sujet des Handle: est-ce que les boîtes de dialogue sont concernées, ou est-ce que c'est que pour les fenêtres principales (celles qui sont concernées par ALT + TAB) ?

    Merci

    Edit: je n'avais pas vu ton post Farscape. Merci !

  15. #15
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    les boites de dialogues sont concernées ...
    toutes les fenetres dans un windows < vista

  16. #16
    Membre éclairé
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par défaut
    Ok, merci.

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

Discussions similaires

  1. Récupérer le chemin d'une dll par son handle
    Par Pierre Castelain dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 23/02/2013, 10h48
  2. Réponses: 1
    Dernier message: 19/12/2010, 01h32
  3. Récupérer le handle d'une DLL
    Par bubulemaster dans le forum Débuter
    Réponses: 1
    Dernier message: 03/11/2007, 00h30
  4. Réponses: 3
    Dernier message: 26/07/2007, 18h28
  5. Récupérer le Handle d'une Appli externe
    Par luxprog dans le forum Windows
    Réponses: 15
    Dernier message: 29/04/2004, 13h47

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