La documentación de Microsoft WinAPI parece sugerir que user32.dll contiene una función llamada GetNextWindow()
que supuestamente permite enumerar las ventanas abiertas en su orden Z llamando a esta función repetidamente.¿Cómo puedo usar GetNextWindow() en C#?
Pinvoke generalmente me da la declaración necesaria DllImport
para usar las funciones de WinAPI desde C#. Sin embargo, para GetNextWindow()
no tiene una entrada. Así que traté de construir mi propia:
[DllImport("user32.dll")]
static extern IntPtr GetNextWindow(IntPtr hWnd, uint wCmd);
Por desgracia, cuando se trata de llamar a esto, me sale un EntryPointNotFoundException
diciendo:
Unable to find an entry point named 'GetNextWindow' in DLL 'user32.dll'.
Esto parece aplicarse solamente a GetNextWindow()
; otras funciones que se enumeran en Pinvoke están bien. Puedo llamar al GetTopWindow()
y GetWindowText()
sin lanzar una excepción.
Por supuesto, si puede sugerir una forma completamente diferente de enumerar ventanas en su orden Z actual, me alegra escuchar eso también.
derecho. Y este hilo (http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/afa69b03-5425-4124-b9b4-f8c6cb9bcc9c) muestra cómo usarlo para obtener "siguiente" – hometoast
Brillante, gracias ¡cargas! – Timwi
¿Cuál es el punto de GetNextWindow() además de confundir pinvokers pobres si toma los mismos argumentos que GetWindow() entonces? – Traubenfuchs