obtener el texto seleccionado en otra aplicación

Quiero tener un script de Python, que estará "inactivo" hasta que se seleccione algún texto en otra aplicación de escritorio, y luego lo almacene en un var. P.ej:

  • El usuario entra en Safari
  • El usuario selecciona un bloque de texto
  • En segundo plano, la secuencia de comandos de Python almacenará ese bloque de texto en una var
  • Ahora que la secuencia de comandos de Python tiene su var, puede dejar de "inactivo" / "pausar" y continuar

Piense en un portapapeles, donde no necesita presionar "Cmd + C"; todo lo que haces es seleccionar el texto

¡Salud! Esto es para Mac OSX por cierto

preguntado el 16 de mayo de 11 a las 17:05

2 Respuestas

Es posible que desee considerar el uso de AppleScript en lugar de Python y hacer que AppleScript pase la información a Python si es necesario.

contestado el 16 de mayo de 11 a las 21:05

Hacer lo que quiere sería difícil de hacer correctamente, asumiendo que sea posible.

Por ejemplo, sin requerir que el usuario presione una tecla (por ejemplo: Cmd + C, Ctrl + C, etc.), ¿cómo espera que su aplicación sepa cuando terminan de seleccionar? Si hago un clic y luego presiono Mayús y hago clic para seleccionar un rango, ¿he terminado? ¿Qué pasa si vuelvo a hacer clic en shift? ¿Qué tal si hago un doble clic? ¿Triple clic? ¿Cómo sabe tu aplicación cuando he terminado de hacer la selección?

Es mejor hacer que el usuario copie explícitamente la selección en el portapapeles. Puede escribir con bastante facilidad una aplicación que use tkinter o wxpython para sondear el portapapeles y esperar a que cambie.

contestado el 16 de mayo de 11 a las 23:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.