pitón win32gui encontrar ventanas hijas
Pregunta
, por ejemplo, en un primer momento usted tiene que encontrar hwnd de Skype
hwnd = win32gui.FindWindow(None, 'skype')
y que todas sus ventanas secundarias y sus títulos
child = ???
alguna idea?
Solución
Esto muestra el código de hwnd
EditPlus ventanas secundarias que tiene WindowsText
de cierta longitud:
Editar
tendrá que encontrar hwnd
de su aplicación, y luego usar este mango con EnumChildWindows
. Extendí código de ejemplo con él. Una vez que obtenga hwnd
aplicación se puede enumerar solamente sus ventanas. Cuando le das a 0 como hwnd
a EnumChildWindows
obtendrá controladores de todas las ventanas runing. Añadir algunas impresiones de mi código y comprobar que funciona!
código extendido:
import win32gui
MAIN_HWND = 0
def is_win_ok(hwnd, starttext):
s = win32gui.GetWindowText(hwnd)
if s.startswith(starttext):
print s
global MAIN_HWND
MAIN_HWND = hwnd
return None
return 1
def find_main_window(starttxt):
global MAIN_HWND
win32gui.EnumChildWindows(0, is_win_ok, starttxt)
return MAIN_HWND
def winfun(hwnd, lparam):
s = win32gui.GetWindowText(hwnd)
if len(s) > 3:
print("winfun, child_hwnd: %d txt: %s" % (hwnd, s))
return 1
def main():
main_app = 'EditPlus'
hwnd = win32gui.FindWindow(None, main_app)
print hwnd
if hwnd < 1:
hwnd = find_main_window(main_app)
print hwnd
if hwnd:
win32gui.EnumChildWindows(hwnd, winfun, None)
main()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow