Estoy tratando de crear una utilidad de código abierto simple para Windows usando Python que puede realizar acciones definidas por el usuario en el texto seleccionado de la ventana actualmente activa. La utilidad debe activarse usando un atajo de teclado predefinido.Cómo recuperar el texto seleccionado de la ventana activa
uso se describe parcialmente en el siguiente ejemplo:
- El usuario selecciona un texto utilizando el ratón o el teclado (en cualquier ventana de la aplicación)
- el usuario pulsa una pre-definido atajo de teclado
- El texto seleccionado es recuperado por nuestra utilidad o copiado en el portapapeles (ambos enfoques deben estar bien)
- La acción dependiente del atajo de teclado se realiza en el texto seleccionado
Lo que me desconcierta es paso 3. Cómo se recupera el texto seleccionado de la ventana activa. Esto debería funcionar con todas las aplicaciones.
Uso el módulo pywin32.
Gracias de antemano por sus respuestas y sugerencias.
Actualización # 1:
Resulta que hay dos enfoques para llevar a cabo la tarea:
- Encuentra la ventana activa, a continuación, enviar un mensaje/pulsaciones de teclas (Ctrl-C) para que para copiar el texto seleccionado al portapapeles. Entonces la utilidad puede trabajar en el texto accediendo a él usando las funciones relacionadas con el portapapeles.
- Encuentra la ventana activa, luego recupera el texto seleccionado directamente (sin copiarlo en el portapapeles). Esto parece más difícil que el primer enfoque.
como puntos de partida:
obtener la ventana ID activo como Anurag Uniyal ha señalado en su reply.
O conseguir el objeto de la ventana con el siguiente código:
import win32ui
wnd = win32ui.GetForegroundWindow()
print wnd.GetWindowText()
Puede aclarar si esta utilidad está realmente creando la ventana activa o esta ventana activa de una aplicación diferente? –
La "ventana activa" es una ventana de una aplicación diferente. Esta utilidad debe ejecutarse en segundo plano (o bandeja del sistema) y debe activarse con una pulsación de tecla predefinida. –
¿Has descubierto cómo recuperar el texto seleccionado? – iMath