Question sur le hwnd

Résolu
l0st3d Messages postés 205 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 13 novembre 2009 - 10 mai 2004 à 08:38
cyrilpradel Messages postés 12 Date d'inscription mercredi 19 juin 2002 Statut Membre Dernière intervention 12 décembre 2005 - 12 déc. 2005 à 09:41
Bonjour a tous, j'aimerais savoir comment je peut avoir le hwnd d'une application dès son lancement.

Merci d'avance

17 réponses

l0st3d Messages postés 205 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 13 novembre 2009
19 janv. 2005 à 21:29
Bon bon bon, je voie beaucoup de petite tete insatisfaites alors,



1. je m'excuse pour je ne sais pas quoi

2. c'est vraiment le hwnd de la fenetre principale d'un programme que je vien de lancé avec shell que je cherchais, bien.

3. crenaud76 tes petites maximes gardes les pour toi.

4. merci a ceux qui on aider et non critiquer j'en suis reconnaissant

5. Avoir été impolis je vous aurais tous traiter de con et d'innocents et ce n'est pas le cas



Entk

Merci encore a ceux ki on répondu
3
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
10 mai 2004 à 12:06
Private Sub Form_Load()
    MsgBox Form1.hWnd
End Sub


Manu
0
l0st3d Messages postés 205 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 13 novembre 2009
10 mai 2004 à 14:22
Faut pas me prendre pour un cn non plus :P je veut avoir le hwnd d'une application lancé avec shell()
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
10 mai 2004 à 21:57
Ce serait pas plutot le PID que tu cherches ?

Christophe R.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
l0st3d Messages postés 205 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 13 novembre 2009
11 mai 2004 à 01:35
PID comme hwnd (pour moi) ... je veut le numero qui identifie le programme que je lance c'est tout.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
11 mai 2004 à 09:57
Ben un Process Identificator et un Window Handler ca n'a rien à voir ! Et tu n'auras ta réponse que lorsque tu sera plus aimable avec Econs !!

Christophe R.
0
l0st3d Messages postés 205 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 13 novembre 2009
15 mai 2004 à 04:04
Christophe R. tu délire? t'a vue ou que j'ai pas été aimble?
0
anael_vodis Messages postés 4 Date d'inscription samedi 29 mai 2004 Statut Membre Dernière intervention 6 février 2005
21 déc. 2004 à 17:50
Bonjour l0st3d !

Je viens juste de voir que tu avais unbe question concernant la récupération du no de "handle" d'une application appelée par la commande "shell"

En fait shell peut être exécuté directement par exemple:
Private Sub test()
Shell("notepad.exe", vbHide)
End Sub

Mais si tu veux "récupérer" le no de "handle" alors il faut le faire de la façon suivante:
Private Sub test()
Dim HNWD As Double
HNWD = Shell("notepad.exe", vbHide)
MsgBox "Le no de handle est : " & HNWD
End Sub

Espérant que cela te sois utile !
A+
Anael
Celui qui sait peu parle beaucoup... Celui qui sait parle peu... Zeta
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
22 déc. 2004 à 09:42
anael_vodis < JE me répête, mais un PID et un HWND, cela n'a rien a voir !!!!!!!!! Vous mélanger tout les gars !!

Christophe R.
0
anael_vodis Messages postés 4 Date d'inscription samedi 29 mai 2004 Statut Membre Dernière intervention 6 février 2005
23 déc. 2004 à 04:40
crenaud76,

je crois que tu aurais besoin d'un cours de politesse... Tu ne respecte pas "l'étiquette" qui devrait être de mise sur tout forum... Il aurait été plus sage de donner l'info à l0st3d en le renseignant que c'est le Process ID qu'il recherchait en non pas le numéro de handle de Windows... Le but d'un forum est de s'entraider afin de favoriser le développement de chacn de ses membres et non pas de "rire" des autres en se plaçant sur un piédestal de "je sais tout" sans donner aucune piste ni explication pertinente. Alors, mon conseil est celui-ci: si ça ne te dit pas de donner de réponse valable à une question d'un membre d'un forum alors abstiens-toi de ne donner que des remarques désobligeante... À bon entendeur...

Oui tu as raison... l'exemple que je donnais ne va retourner que le Process ID mais je crois que c'est la réponse que l0std3 voulait avoir. Par sa question j'ai bien vu qu'il recherchait à récupérer le Process ID...

Pour récupérer donc le Process ID à partir d'une fonction Shell:
Private Sub test()
Dim NoPID As Double
NoPID = Shell("notepad.exe", vbHide)
MsgBox "Le no de handle est : " & NoPID
End Sub

Pour récupérer le no de handle d'une fenêtre active (on peut rendre active la fenêtre d'une application à partir de son process ID) il faut utiliser la fonction GetActiveWindows de l'API (user32.dll):

Declare Function GetActiveWindow Lib "user32.dll" () As Long

Sub Test()
Dim HandleNo As Long
HandleNo = GetActiveWindows()
MsgBox "Le no du Handle est: " & HandleNo
End Sub

Généralement celui qui parle beaucoup sait bien peu de choses... Celui qui par sagesse parle peu sait beaucoup de choses...Zeta
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
23 déc. 2004 à 09:09
l0st3d n'a pas non plus respecté l'étiquette et les bonnes manières de ce forum dans sa réponse à Econs !!
Je respecrte les gens respectables, et la réponse de l0st3d ne me donne pas envie de le respecter !
Ce qui m'a coquer dans ta réponse à l0st3d, c'est que tu as nommé ta variable HNWD, et non pas PID, voila tout. Maintenant le bon code tu le lui as donné, alors inutile pour moi de le lui redonner !!
Pour ce qui et de donner des réponses valable aux questions posé sur ce forum, je pense, sans me vanter, que c'est toujorus ce que je fait. Simplement, l0st3d m'a énervé dans sa facon de répondre à Econs, dont la proposition était tout à fait valable, au vue de la façon dont est libellé la question à l'origine. S'il avait simplement répondu, "Non ! Ce n'est pas ce que je recherche, ..." Je lui aurait volontier donner la bonne réponse, et Econs aussi sans doute. Econs est sans doute plus sage que moi, en cela qu'il n'a pas surenchérit sur l'affaire, mais moi, je n'ai pas pu m'en empêcher ! Peut-être étais-je particulièrement ronchon ce jour la, va savoir !
Et si je suis tout a fait d'accord avec la dernière maxime de ton post, en voici une pour l0st3d

"Savoir qu'on ne sait rien, c'est déjà savoir quelque chose" ... mais encore faut-il l'admettre !!

Christophe R.
0
anael_vodis Messages postés 4 Date d'inscription samedi 29 mai 2004 Statut Membre Dernière intervention 6 février 2005
24 déc. 2004 à 03:19
Hello crenaud76,

Excuses-moi pour ma remarque qui, il est vrai, ne tenai pas du réel contexte. Il est vrai que l0st3d avait été impoli au départ... C'est dommage pour lui car c'est la meilleure façon de se fermer des portes et je suis en accord avec toi sur le commentaire final de ton dernier "posting"

En passant j'ai consulté tes travaux sur vbfrance: excellent !!! et très professionnel !!!

Encore une fois : excuses-moi !!!

Généralement celui qui parle beaucoup sait bien peu de choses... Celui qui par sagesse parle peu sait beaucoup de choses...Zeta
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
20 janv. 2005 à 10:52
No comment

Christophe R
0
l0st3d Messages postés 205 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 13 novembre 2009
9 mars 2005 à 07:59
jespère
0
cyrilpradel Messages postés 12 Date d'inscription mercredi 19 juin 2002 Statut Membre Dernière intervention 12 décembre 2005
9 déc. 2005 à 16:55
Salut tout le monde !

Je remonte ce topic car j'ai une question à vous poser qui est très proche de celle de

l0st3d.
Via la fonction Shell, je lance une application (la fonction Shell me retourne le process Id de l'appli lancée mais pas le handle)
Avant, je m'appuyais sur la classe de fenêtre pour la retrouver :

'on lance l'appli
hApp = Shell(<monExe> + " " + , <mode d'ouverture>)
hFen = 0
'Recherche du handle de la fenêtre (hFen) selon sa classe (zClassFen) jusqu'à la fin du timer ou jusqu'à ce qu'on trouve
Do While hFen = 0 And (Timer < lTimer)
DoEvents
hFen = GetWinHandle(zClassFen)
Loop

PS : Je ne détaille pas la fonction GetWinHandle mais j'utilisais les API GetWindow et GetClasseName

Cela fonctionnait très bien à partir du moment où on connaissait la classe de fenêtre.
Aujourd'hui, je cherche à récupérer le handle d'une appli selon son process Id.
On aurait donc :

'on lance l'appli

hApp = Shell(<monExe> + " " + , <mode d'ouverture>)

hFen = 0

'Recherche du handle de la fenêtre (hFen) selon sa classe (zClassFen) jusqu'à la fin du timer ou jusqu'à ce qu'on trouve

Do While hFen = 0 And (Timer < lTimer)

DoEvents

hFen = GetWinHandlePid(hApp)

Loop

Et c'est là que je sèche !
Si vous avez des idées, n'hésitez pas à me contacter.

Merci d'avance !

Cyril
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
9 déc. 2005 à 17:05
Je te conseillerais de refaire un nouveau thread dans le forum, car celui-ci est un peu vieux !!
De plus seul Econs, IOst3d, anael_vodis et moi-même sommes au courant que tu viens de poster ce message

CR
0
cyrilpradel Messages postés 12 Date d'inscription mercredi 19 juin 2002 Statut Membre Dernière intervention 12 décembre 2005
12 déc. 2005 à 09:41
Ok crenaud76, merci de te réponse. Je vais aller ouvrir un nouveau thread.

A+

Cyril
0
Rejoignez-nous