Identifier une fenêtre de façon unique

Le
TSalm
Bonjour,

Je liste les fenêtre avec "EnumWindows". Mais je voudrais identifier ces
fenêtres de façon unique et permanente dans le système.
Est-ce que le handle est fiable ? Ou y a t-il une meilleur solution ?

A+
-TSalm
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Laurent
Le #23419751
"TSalm"
Bonjour,

Je liste les fenêtre avec "EnumWindows". Mais je voudrais identifier ces
fenêtres de façon unique et permanente dans le système.
Est-ce que le handle est fiable ? Ou y a t-il une meilleur solution ?



Oui, le handle est unique, pour la session courante
TSalm
Le #23422841
Le Sat, 04 Jun 2011 12:41:40 +0200, Laurent

"TSalm"
Bonjour,

Je liste les fenêtre avec "EnumWindows". Mais je voudrais identifier ces
fenêtres de façon unique et permanente dans le système.
Est-ce que le handle est fiable ? Ou y a t-il une meilleur solution ?



Oui, le handle est unique, pour la session courante




Merci
TSalm
Le #23429561
Le Sun, 05 Jun 2011 10:52:36 +0200, TSalm
Le Sat, 04 Jun 2011 12:41:40 +0200, Laurent

"TSalm"
Bonjour,

Je liste les fenêtre avec "EnumWindows". Mais je voudrais identifier
ces
fenêtres de façon unique et permanente dans le système.
Est-ce que le handle est fiable ? Ou y a t-il une meilleur solution ?



Oui, le handle est unique, pour la session courante




Merci


Finalement, un handle n'est pas complétement fiable :
http://msdn.microsoft.com/en-us/library/ms633528(v=VS.85).aspx
<Further, because window handles are recycled the handle could even
point to a different window.>
Arg, il n'y a pas d'autre solution que les handles pour identifier une
fenêtre ?

J'avais trouvé :
uidWin = GetClassLong( _hWin , GCW_ATOM );
mais les fenêtres CMD ont toutes le même identifiant...donc pas bon non
plus :-(
Christian ASTOR
Le #23429791
TSalm a écrit :

Finalement, un handle n'est pas complétement fiable :
http://msdn.microsoft.com/en-us/library/ms633528(v=VS.85).aspx
<Further, because window handles are recycled the handle could even
point to a different window.>
Arg, il n'y a pas d'autre solution que les handles pour identifier une
fenêtre ?

J'avais trouvé :
uidWin = GetClassLong( _hWin , GCW_ATOM );
mais les fenêtres CMD ont toutes le même identifiant...donc pas bon non
plus :-(



Quel est le but ?
Le handle est bien unique pour identifier une fenêtre, à un instant t
donné...
TSalm
Le #23444791
Le Mon, 06 Jun 2011 23:26:45 +0200, Christian ASTOR

TSalm a écrit :

Finalement, un handle n'est pas complétement fiable :
http://msdn.microsoft.com/en-us/library/ms633528(v=VS.85).aspx
<Further, because window handles are recycled the handle could even
point to a different window.>
Arg, il n'y a pas d'autre solution que les handles pour identifier une
fenêtre ?

J'avais trouvé :
uidWin = GetClassLong( _hWin , GCW_ATOM );
mais les fenêtres CMD ont toutes le même identifiant...donc pas bon non
plus :-(



Quel est le but ?
Le handle est bien unique pour identifier une fenêtre, à un instant t
donné...



Je fait un petit outil qui permet de changer la propriété de fenêtres
(placer en Topmost ou non par exemple).
Je liste les fenêtres à interval régulier.

Après réflexion, puisque je ne gére plus les fenêtres si elles sont
fermées, je ne peux pas récuperer un handle d'une autre fenêtre, le
recyclage se faisant seulement sur des fenêtres fermées si je ne me trompe
pas.

A+
TSalm
TSalm
Le #23445831
Finalement, un handle n'est pas complétement fiable :
http://msdn.microsoft.com/en-us/library/ms633528(v=VS.85).aspx
<Further, because window handles are recycled the handle could even
point to a different window.>
Arg, il n'y a pas d'autre solution que les handles pour identifier une
fenêtre ?

J'avais trouvé :
uidWin = GetClassLong( _hWin , GCW_ATOM );
mais les fenêtres CMD ont toutes le même identifiant...donc pas bon non
plus :-(



Quel est le but ?
Le handle est bien unique pour identifier une fenêtre, à un instant t
donné...



Je fait un petit outil qui permet de changer la propriété de fenêtres
(placer en Topmost ou non par exemple).
Je liste les fenêtres à interval régulier.

Après réflexion, puisque je ne gére plus les fenêtres si elles sont
fermées, je ne peux pas récuperer un handle d'une autre fenêtre, le
recyclage se faisant seulement sur des fenêtres fermées si je ne me
trompe pas.



Oups, je n'ai pas répondu précisément à la question.
J'ai besoin d'identifier de façon unique une fenêtre car je dois vérifier
que les fenêtres mémorisées dans ma liste des fenêtres sont, oui ou non,
encore présentes dans les fenêtres effectivement affichés sur le bureau.
Il n'est donc pas question qu'un identifiant de fenêtre varie d'un appel à
un temps t et à un temps t+1.
Christian ASTOR
Le #23447231
TSalm a écrit :

Oups, je n'ai pas répondu précisément à la question.
J'ai besoin d'identifier de façon unique une fenêtre car je dois
vérifier que les fenêtres mémorisées dans ma liste des fenêtres sont,
oui ou non, encore présentes dans les fenêtres effectivement affichés
sur le bureau.
Il n'est donc pas question qu'un identifiant de fenêtre varie d'un appel
à un temps t et à un temps t+1.



Mais si tu fais un EnumWindows() en temps-réel dans un thread, tu auras
toujours les bonnes fenêtres (comme le Task Manager par ex)
TSalm
Le #23449501
Le Fri, 10 Jun 2011 11:54:14 +0200, Christian ASTOR

TSalm a écrit :

Oups, je n'ai pas répondu précisément à la question.
J'ai besoin d'identifier de façon unique une fenêtre car je dois
vérifier que les fenêtres mémorisées dans ma liste des fenêtres sont,
oui ou non, encore présentes dans les fenêtres effectivement affichés
sur le bureau.
Il n'est donc pas question qu'un identifiant de fenêtre varie d'un appel
à un temps t et à un temps t+1.



Mais si tu fais un EnumWindows() en temps-réel dans un thread, tu auras
toujours les bonnes fenêtres (comme le Task Manager par ex)



Je garde donc mes handles en tant qu'identifiant.
Merci Christian
Publicité
Poster une réponse
Anonyme