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

C++ Discussion :

[Win32] r�cup�rer le handle de mon application console


Sujet :

C++

  1. #1
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut [Win32] r�cup�rer le handle de mon application console
    Bonjour � tous,

    voil�, j'utilise une API qui me demande le HWND de mon application. Cependant, je suis en mode console, donc (contrairement � si j'�tais en mode fen�tre (subsystem window) ) je n'ai pas directement acc�s � mon HWND.

    J'ai trouv� diff�rentes fa�ons de proc�der, mais aucune ne me convient.
    Par exemple, utiliser GetFocus() qui me renvoie un handle sur la fen�tre qui est s�lectionn�e. Mais le probl�me c'est que je ne suis pas certain que c'est la console de mon appli qui sera s�lectionn�e � ce moment l�.
    J'ai fouin� �galement du c�t� de GetShellWindow(), mais appremment le handle que me renvoie cette fonction n'est pas le bon.
    Savez-vous quelle est la meilleure fa�on de proc�der?

    Question subsidiaire: comment v�rifier, en d�buggant en pas � pas avec visual8, que un HWND soit effectivement celui de mon application?

    merci

  2. #2
    screetch
    Invit�(e)
    Par d�faut
    les applis n'ont pas de HWND, elles ont des HINSTANCE

    c'est la partie WinMain( HINSTANCE monhInstance,.........);

    HWND c'est le handle d'une fenetre, il y a des chances qu'on te demande le handle de ta fenetre principale. Dans ton cas tu n'en as pas (une console n'est pas uen fenetre, c'est certes affiche dans une fenetre mais tu pourrais avoir une console sans fenetre)

    Si tu n'en as pas tu peux normalement passer 0
    une autre solution est de passer le Desktop (GetDesktopWindow())

    la derniere solution revient a creer uen fenetre ^^

    c'est pour faire quoi que tu as besoin du HWND ? ca va ecrire dedans ?

  3. #3
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    Ok.
    Le truc c'est que mon main est un main classique (int main (char*, char**)) et pas un winmain.
    Sinon, c'est une fonction de l'API que j'utilise qui me demande le HWND, mais je ne sais fichtre pas ce qu'elle en fait.
    Merci pour ces pr�cisions, je devrais pouvoir me d�brouiller


  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par d�faut
    salut,
    regarde du c�t� de

    HMODULE GetModuleHandle(
    LPCTSTR lpModuleName // address of module name to return handle for
    );


    HWND FindWindow(
    LPCTSTR lpClassName, // pointer to class name
    LPCTSTR lpWindowName // pointer to window name
    );

  5. #5
    Membre chevronn� Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par d�faut
    regarde si la fonction de l'api que tu veut appeler ne support pas un NULL, � la place de ton HWND. Pour MessageBox cela fonctionne.

    ps: moi je verais plutot ce post dans la cat�gorie programmation windows ?

  6. #6
    Invit� de passage
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Par d�faut Example de Projet VC++ ou avec STL
    Bonjour,

    Quelqu'un pourrait m'indiquer ou je pourrais trouver un prototype de projet avec visual C++ ?

    Des sp�cificit�s au produyit final utilisable ?

    Merci bien

  7. #7
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Citation Envoy� par screetch Voir le message
    une autre solution est de passer le Desktop (GetDesktopWindow())
    Raymond Chen dit NON.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [D�butant] R�cup�rer le chemin de mon application
    Par amine1980 dans le forum C#
    R�ponses: 3
    Dernier message: 27/09/2012, 12h08
  2. R�cup�rer un fichier dans mon application
    Par 1rageux dans le forum Android
    R�ponses: 7
    Dernier message: 19/12/2009, 17h42
  3. R�cup�rer les sessions connect�es � mon application DEPUIS une session
    Par touria_lahsine dans le forum D�veloppement Web en Java
    R�ponses: 3
    Dernier message: 30/05/2008, 16h33
  4. R�ponses: 1
    Dernier message: 08/10/2006, 20h01
  5. Comment retrouver le handle d'une application console?
    Par Laurent Dardenne dans le forum Windows
    R�ponses: 7
    Dernier message: 22/12/2004, 16h58

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