1

messieurs-dames.
bonsoir.

est-ce qu'une ame charitable connaitrait un moyen de recuperer le thread ID depuis le handle d'un thread Win32.
apres divers googlings et recherches sur msdn, je n'ai rien vu.
a part evidemment le magique GetThreadId(HANDLE Thread).
sauf qu'il n'est defini qu'a partir de windows vista gol

PS: stocker le thread ID lors du CreateThread() n'est pas possible, et aller recuperer le thread ID comme un goret depuis le TIB n'est pas non plus une option. embarrassed

halp! :(/
avatar
HURRRR !

2

[Edit] Ha ben non je dis de la merde. Par contre je comprends pas bien pourquoi tu as besoin de l'id du thread en fait, à part pour l'ouvrir hum
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

3

Y'a pas l'air d'avoir de méthode propre avant Vista pour récupérer ça.

Tu peux y arriver grâce à NtQueryInformationThread et le paramètre THREAD_INFORMATION_CLASS, qui renvoie une structure THREAD_BASIC_INFORMATION qui contient un membre ClientId qui contient l'ID du thread et celui du processus cheeky, mais ça reste quasiment non-documenté.

(sinon pareil que Brunni, pourquoi as-tu besoin de l'ID du thread si tu as un handle ? vu que la majorité des fonctions attendent un handle)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4

Probablement pour faire du if (thread_id == toto) fais X else fais Y;.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

./4> ?? eeekcouic2fou3
./2 / ./3> justement pour utiliser les rares fonctions qui ne fonctionnent qu'avec le thread Id et qui n'ont pas leur equivalent avec le handle. (la, en l'occurence, pour demander au debugger de visual studio d'attacher un nom a un thread ID afin d'avoir des threads nommes dans la fenetre de debug des threads).

./3> interessant, je savais pas que le thread Id etait la dedans... c'est quand meme un peu moins degeulasse que du __asm { mov ... , fs:[0x6EC] } grin
merci smile
avatar
HURRRR !

6

Euh...
Tu sais, malgré ce qui est indiqué sur MSDN, le coup du "régler le nom du thread", je n'ai jamais réussi à le faire marcher pour nommer un thread depuis un autre: Seulement pour nommer le thread courant...

Et pour ça, tu as GetCurrentThreadId().

Sinon, tu peux avoir des trucs plus marrants si le thread en question possède une fenêtre dont tu peux obtenir le handle: Un petit GetWindowThreadProcessId() dessus...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

7

Euh... Tu sais, malgré ce qui est indiqué sur MSDN, le coup du "régler le nom du thread", je n'ai jamais réussi à le faire marcher pour nommer un thread depuis un autre: Seulement pour nommer le thread courant...

bah pourtant... ca marche tres bien, ca m'a jamais pose de problemes... (avec visual 2k8 en tout cas... et depuis le thread pere)

(k. mais non, aucun de tous les threads en question n'ont de fenetres.)
avatar
HURRRR !