2010-11-28 28 views
2

je veux obtenir la poignée de la zone de texte où le caret est, dans un autre programme. Tout ce que je peux trouver est de savoir comment obtenir la liste des contrôles dans une fenêtre avec "EnumChildWindows", puis de rechercher le contrôle "edit" .. (et cela ne fonctionne pas pour tous les programmes qui ont une zone de texte). Je ne sais pas comment trouver celui qui est le caret et l'utilisateur est en train d'écrire dans. je suis vraiment coincé avec elle .. :( Thanx beaucoup, Shiran.API C# - comment obtenir le handle de la zone de texte où le curseur est dans un autre programme?

Répondre

1

Vous aurez besoin de sauter à travers plusieurs cerceaux PInvoke. Commencez par GetForegroundWindow() pour obtenir la poignée de la fenêtre toplevel active. Ensuite GetThreadWindowProcessId() pour obtenir l'ID du thread qui possède cette fenêtre. Puis enfin GetGUIThreadInfo(), il retourne un tas de dans sur le Fenêtres appartenant au thread Le membre GUITHREADINFO.hwndCaret vous donne le handle de la fenêtre qui possède le signe car il ne doit pas être une zone de texte btw

Visitez pinvoke.net pour les déclarations dont vous aurez besoin .

+0

ça marche !!!! Merci beaucoup!!! :) – Shiran