Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1110 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Récuperer un HWND d'un HINSTANCE ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récuperer un HWND d'un HINSTANCE ?

n°356428
topheb
Vivit sub pectore vulnus
Posté le 09-04-2003 à 11:07:47  profilanswer
 

j'aimerai Récuperer un HWND de la fenetre d'application d'un HINSTANCE recuperer par ShellExecute().
sans passer par un ::FindWindow()
c'est possible en API ?

mood
Publicité
Posté le 09-04-2003 à 11:07:47  profilanswer
 

n°356448
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-04-2003 à 11:32:53  profilanswer
 

Tu ne peux pas, pour la simple raison qu'il n'y a pas forcément d'hWnd associé à un hInstance. Ou alors, tu peux avoir plusieurs hWnd associés également. Plusieurs solutions :
 

  • Soit tu utilises FindWindow en passant en paramètre la classe de la fenêtre que tu peux récupérer via des utilitaires comme Spy++. (Pourquoi ne peux tu pas l'utiliser au fait ?)


  • Soit tu parcours la hiérarchie de fenêtres de premier plan via GetWindow(). A chaque fenêtre que tu trouves, tu utilises GetWindowWord() pour récupérer le hInstance de la fenêtre. Tu compares ensuite ce hInstance avec celui que tu souhaites, et s'ils collent => c'est la bonne fenêtre


  • Tu attends quelques instants (le temps de traiter quelques messages par exemple), puis tu appelles GetActiveWindow() pour récupérer le hWnd.


Bref, c'est pas simple. Je te recommande la 1ere solution.


---------------
J'ai un string dans l'array (Paris Hilton)
n°356453
topheb
Vivit sub pectore vulnus
Posté le 09-04-2003 à 11:40:59  profilanswer
 

Harkonnen a écrit :

Tu ne peux pas, pour la simple raison qu'il n'y a pas forcément d'hWnd associé à un hInstance. Ou alors, tu peux avoir plusieurs hWnd associés également. Plusieurs solutions :
 

  • Soit tu utilises FindWindow en passant en paramètre la classe de la fenêtre que tu peux récupérer via des utilitaires comme Spy++. (Pourquoi ne peux tu pas l'utiliser au fait ?)


  • Soit tu parcours la hiérarchie de fenêtres de premier plan via GetWindow(). A chaque fenêtre que tu trouves, tu utilises GetWindowWord() pour récupérer le hInstance de la fenêtre. Tu compares ensuite ce hInstance avec celui que tu souhaites, et s'ils collent => c'est la bonne fenêtre


  • Tu attends quelques instants (le temps de traiter quelques messages par exemple), puis tu appelles GetActiveWindow() pour récupérer le hWnd.


Bref, c'est pas simple. Je te recommande la 1ere solution.
 


 
 
Merci pour ces infos.
Je ne peux pas utiliser findWindow car je lance plusieurs instances de la meme appli. Et bien sur findwindow ne peut me trouver que la premiere fenetre.  
Je pense que je vais essayer ta solution numeros 2.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Récuperer un HWND d'un HINSTANCE ?

 

Sujets relatifs
Recuperer le path d'un argumentSQL Server : récupérer les enregistrements n à m, problème
[ DOS ] Recuperer le repertoire courant[ SQL serveur ] - récuperer en SQL la structure d'une base / d'une ...
technique "magique" pour recuperer les données d'une page ?Resolu[c/Linux]Comment recupérer les infos d'un pipe sans perte de don
récupérer les évènements clavierComment recuperer l'objet d'une ListBox
recuperer un cookieRécupérer le nom de champs d'une base de données Access
Plus de sujets relatifs à : Récuperer un HWND d'un HINSTANCE ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR