2010-10-27 26 views

Respuesta

19

Tenga en cuenta que no todas las ventanas son necesariamente NSWindows, y que NSWindow solo proporciona una interfaz para Windows en su propio espacio de direcciones.

La forma admitida para acceder a todas las ventanas es la API CGWindow. Eche un vistazo al código de muestra Son of Grab para ver cómo se hace.

+0

Gracias por el enlace Son of Grab, más útil. –

+0

¡Busqué 2 horas para esto! – Hlung

+0

¿Por qué no todas las ventanas son necesariamente NSWindows? Entonces, ¿qué son esas super clase de cgwindows? ¿Podría darme una referencia para buscarlo? – allenlinli

1

TODAS ejecución de aplicaciones? No. Solo puedes obtener las NSWindows de tu propia aplicación. Puede utilizar Universal Access o Core Graphics APIs para obtener información sobre las ventanas de otras aplicaciones, pero no acceso completo.

5

Puede usar la API de accesibilidad (la accesibilidad debe habilitarse en Preferencias del sistema para que funcione) para obtener información sobre ventanas (y otros elementos de la interfaz de usuario) de otros procesos. This question puede ser justo lo que estás buscando.

Cuestiones relacionadas