Estoy tratando de controlar ventanas de aplicaciones OSX extranjeras desde mi aplicación. Me gustaría a 1. Desplazamiento en las ventanas en la pantalla 2. cambiar el tamaño de las ventanas en la pantalla 3. El cambio de la ventana activa en ese momento de la aplicación 4. obtener la ventana activa en ese momento.Control de ventanas OSX
(Y me gustaría hacer esto ya sea a través ObjC/C/++ API C).
¿Cuáles son las llamadas a la API que yo debería estar buscando, teniendo en cuenta que tengo los CGWindowIDs de las ventanas que desea controlar? Es decir, yo esperaría encontrar funciones con las firmas de algo como: MoveWindow(CGWindowID winId, int x, int y)
, ResizeWindow(CGWindowID winId, int width, int height)
, Activatewindow(CGWindowID winId)
, CGWindowID GetCurrentlyActivatedWindow()
.
Para 3, ya estoy usando SetFrontProcess
para hacer que un proceso esté en primer plano, pero esto no me permite seleccionar la ventana específica de un proceso si tiene múltiples.
Estos ejemplos de código me han ayudado de varias maneras, ya que quiero lograr lo mismo que Sami. :) ¡Muchas gracias! –
Sin problemas. Fue un placer ayudar - esta comunidad me ha dado tantas respuestas excelentes a mis preguntas que fue agradable poder ofrecer algo de vuelta. –
¿Hay algún método para enfocar solo la ventana, sin accesibilidad? Mi caso de uso es que mi aplicación tiene foco, enumera todas las aplicaciones en ejecución, seleccionar una aplicación en esa lista la enfocará. Actualmente, si uso 'activateWithOptions:' no está minimizando las ventanas minimizadas, por lo que si todas las ventanas están minimizadas, no hace nada. Así que estoy tratando de encontrar otra manera de enfocarme (lo cual minimiza) – Noitidart