¿Cómo saco el foco o minimizo una ventana con Python?

Necesito enfocarme en una ventana específica, y la única forma en que lo veo en mi cabeza, es minimizar todas las ventanas en la parte frontal hasta que obtenga la correcta …

¿Cómo puedo hacerlo?

Windows 7, y ningún kit de herramientas específico ….

Cada tipo de ventana, por ejemplo, firefox y comando de consola.

Deberá enumerar a través de las ventanas y hacer coincidir el título de la ventana para obtener el que desea. El siguiente código busca una ventana con “firefox” en el título y establece el enfoque:

import win32gui toplist = [] winlist = [] def enum_callback(hwnd, results): winlist.append((hwnd, win32gui.GetWindowText(hwnd))) win32gui.EnumWindows(enum_callback, toplist) firefox = [(hwnd, title) for hwnd, title in winlist if 'firefox' in title.lower()] # just grab the first window that matches firefox = firefox[0] # use the window handle to set focus win32gui.SetForegroundWindow(firefox[0]) 

Para minimizar la ventana, la siguiente línea:

 import win32con win32gui.ShowWindow(firefox[0], win32con.SW_MINIMIZE) 

Supongo que a partir de la pregunta, desea escribir un genérico que pueda funcionar con cualquier ventana desde cualquier aplicación.

Es posible que desee probar la biblioteca de automatización GUI de Python Win32 . No lo he usado pero parece que podría ser lo que estás buscando. Si eso no funciona, su mejor opción podría ser renunciar a Python y usar una herramienta como AutoIt que proporciona soporte integrado para la manipulación de ventanas.

Si ninguna de estas soluciones funciona, es probable que tenga que invocar directamente la API de Windows. No sé si el paquete win32api envuelve la funcionalidad necesaria, de lo contrario, tendrá que escribir un módulo python en c / c ++.

Si este tipo de funcionalidad está disponible en la api .net, podría usar IronPython.

Deberá enumerar a través de las ventanas y hacer coincidir el título de la ventana para obtener el que desea. El siguiente código busca una ventana con “firefox” en el título y establece el enfoque

Para minimizar la ventana usa la siguiente línea:

 def enumHandler(hwnd, lParam): if 'firefox' in win32gui.GetWindowText(hwnd): win32gui.ShowWindow(hwnd, win32con.SW_MINIMIZE) win32gui.EnumWindows(enumHandler, None) 

Esto funciona para Windows 10, Python3.5 32bit, pywin32‑223.

Informé el caso anterior, pero se produjo un error.

Rastreo (llamadas recientes más última):

TypeError: el objeto no es un objeto PyHANDLE