Pregunta

He estado buscando siempre una solución para esto, así que pensé que busco el capital intelectual de las mentes más grandes que la mía. Estoy desarrollando una aplicación de cacao que utiliza la API de accesibilidad para manipular otro programa (que es una aplicación de tecla de acceso directo). La aplicación que estoy controlando normalmente tiene varias ventanas abiertas, con un poco escondido detrás de otros. Lo que me gustaría hacer, si es posible, es el envío de eventos de ratón a las ventanas utilizando la API de accesibilidad de una manera que presiona un botón en la ventana sin traer al primer plano (interactúan con la ventana, pero no lo activo) . La razón por la que estoy tratando de hacer esto es que el envío del evento de ratón a esta otra ventana obligará al primer plano e interrumpir la interacción del usuario con la ventana principal.

Esto es posible en Windows - al parecer, debido a aplicaciones similares a la mía no lo hacen - pero estoy teniendo la sensación de que esto no es posible con cacao, dada la forma en que funciona gestor de ventanas. ¿Estoy equivocado?

¿Fue útil?

Solución

La accesibilidad es de mayor nivel que eso. Se envía, por ejemplo, las acciones AXPress a objetos AXButton, pero “de prensa” no es necesariamente un clic-presionando la barra espaciadora mientras que una visión se centra, por ejemplo, es también una “prensa”. AXPress es una acción de alto nivel que significa “hacer lo suyo”, lo que, evidentemente, ha significado para algunos puntos de vista (como botones) y otros no (como los campos).

Accesibilidad activar la aplicación hace tiene sentido cuando se lo mira desde su fin previsto: Los dispositivos de ayuda para usuarios con discapacidad. Si el usuario “prensas” algo por cualquier medio, es probable que la intención de activar la aplicación y el trabajo en ella.

de cuarzo Otros Servicios le conseguirá casi no: Usted puede crear un evento del grifo para el proceso que desea controlar , y se puede forjar eventos y enviarlos a un grifo . El problema es que sólo se puede enviar eventos a un grifo cuando se dispara el grifo -es decir, cuando la aplicación ya cuenta con un evento de tratar. Cuando no lo hace, usted está atascado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top