Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Identifier une fenêtre de façon unique

8 réponses
Avatar
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

8 réponses

Avatar
Laurent
"TSalm" a écrit dans le message de news:

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
Avatar
TSalm
Le Sat, 04 Jun 2011 12:41:40 +0200, Laurent a écrit:


"TSalm" a écrit dans le message de news:

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
Avatar
TSalm
Le Sun, 05 Jun 2011 10:52:36 +0200, TSalm a écrit:

Le Sat, 04 Jun 2011 12:41:40 +0200, Laurent a écrit:


"TSalm" a écrit dans le message de news:

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 :-(
Avatar
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é...
Avatar
TSalm
Le Mon, 06 Jun 2011 23:26:45 +0200, Christian ASTOR
a écrit:

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
Avatar
TSalm
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.
Avatar
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)
Avatar
TSalm
Le Fri, 10 Jun 2011 11:54:14 +0200, Christian ASTOR
a écrit:

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