Question

Je veux créer la même fonction "Find Windows ..." de Spy ++ en C #. J'ai essayé avec cette fonction du winapi:

HWND WINAPI WindowFromPoint(__in  POINT Point);

http://msdn.microsoft.com/en-us/library/ms633558.aspxMais je n'arrive pas pour obtenir tous les éléments avec cela, car ils sont handicapés ou cachés.

Par exemple, avec la calculatrice de la fenêtre 7 en mode programmeur, je ne peux pas obtenir le "ABCDEF" avec mon programme s'ils sont désactivés, alors SPY ++ peut l'obtenir.

Edit: j'ai essayé cela mais cela ne fonctionne pas:

[DllImport("user32.dll")]
public static extern ulong GetClassLongPtr(IntPtr hWnd, int nIndex);

[DllImport("user32.dll")]
public static extern IntPtr ChildWindowFromPointEx(IntPtr hWndParent, Win32Point pt, uint uFlags);

IntPtr hWnd = WindowFromPoint(myPoint);
hWnd= ChildWindowFromPointEx(hWnd , myPoint, 0x0000);

mon point est la position de ma souris.

Je ne connais pas le winapi et j'imagine avec votre explication qui est un manque de compréhension de moi. Il est possible d'avoir un petit exemple de fonction ChildWindowFrompointex ou de savoir ce que mon code ne fonctionne pas? Merci pour votre réponse


J'ai essayé de créer la boucle mais, il semble que la poignée soit sous l'autre poignée mais n'est pas des enfants de la poignée, la boucle envoie toujours la même poignée et non l'enfant désir lorsque la clé "ABCDEF" est désactivée. Avez-vous une autre idée?

Était-ce utile?

La solution

WindowFromPoint Renvoie une poignée de fenêtre. Puisque vous avez affaire à des fenêtres désactivées / cachées, vous voudriez utiliser Childwindowfrompointex, passant hwndParent comme quelle que soit la poignée que vous avez obtenue WindowFromPoint.

Vous pourriez trouver l'article suivant utile:http://blogs.msdn.com/b/oldnewthing/archive/2010/12/30/10110077.aspx


En ce qui concerne le code que vous avez ajouté, ChildWindowFromPointEx Prend des coordonnées des clients, tandis que les coordonnées de position de la souris que vous avez sont des coordonnées d'écran. Vous pouvez faire la conversion avec Scripte.

Remarque: C'est la façon Winapi de faire les choses. Je ne sais pas si les fournitures API C #.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top