HWND d'un Process

Signaler
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Bonsoir a tous,
voila je vous pose mon probleme en fait je voudrais envoyé un message à un processus lancé sur ma machine (en utiliseant SendMessage), mais pour pouvoir utiliser cette fonction il faut que je connaisse le HWND du process et moi je n'arrive qu'à obtenir son HANDLE et VS me dit qu'il est impossible de convertir.
Malgrès mes recherche, je n'ai pas trouvé de réponse à ma question, c'est pourquoi je solicite votre aide.
Merci par avance.
Bob...

"La chance accorde ses faveur aux esprits avertis..."

6 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Tu veux le HWND d'un process? Je crois pas que ce soit possible. Un
HWND désigne une fenêtre, mais un process a en général plusieurs
fenêtres donc ce que tu veux faire n'a pas de sens (par contre on peut
obtenir un handle de process a partir d'un HWND).

Par contre tu connais peut être la classe de la fenêtre que tu
recherche, dans ce cas avec FindWindow tu peux retrouver cette fenêtre
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
10
pourrais tu me dire comment obtenir un HWND quand j'ai le HANDLE, ça résoudrait mon probleme...
Car le FindWindow ne marche pas avec le prog à qui je veux envoyer le message !
Bob...

"La chance accorde ses faveur aux esprits avertis..."
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Tu n'a pas compris ce que j'ai dit: tu ne peux pas obtenir un HWND à
partir d'un handle, ca semble logique puisqu'en général ce HWND n'est
pas unique. Et pourquoi est-ce que FindWindow ne marche pas? Si ta
fenêtre n'est pas un Dialog tu peux la retrouver avec le nom de classe.
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
10
euh c'est quoi en fait le nom de classe?
sinon je te réexplique mon probleme... en fait j'ai un programme, qui est "abcd.exe", en fait il n'est visible que dans la systray. Le seul endroit ou je le "vois" c'est dans les processus... et je voudrait lui envoyer un certain message, mais je n'y arrive pas... voila donc en gros ma question.
tu peux ptete m'aider?
Bob...

"La chance accorde ses faveur aux esprits avertis..."
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Je comprends bien ton problème. Mais ne me dis pas que tu ne sais pas
ce qu'est la classe d'une fenêtre. C'est le premier argument que tu
passe a CreateWindowEx quand tu crée un fenêtre. A mon tu l'utilise
sans même t'en rendre compte. Tu peux rechercher un fenêtre a partir de
son nom, mais aussi a partir de sa classe et je pense que ca peut
résoudre ton problème.

Je me demande aussi s'il est possible d'attacher une variable
utilisateur à un process, ca te permettrait aussi de résourdre ton
problème.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Oublie la deuxième solution, ca n'a pas l'air d'exister. Par contre, si
tu veux éviter FindWindow, tu peux écrire le HWND dans la table
d'échanges, comme c'est fait dans cette source:

http://www.cppfrance.com/code.aspx?ID=25238