python - El uso de pywinauto.top_window() se cuelga al usarlo con subprocesos
multithreading com (0)
Si creo un hilo que todo lo que hace es conectarme a algún proceso y obtener su ventana superior, entonces el programa se cuelga.
Lo depuré un poco y parece quedar atrapado en comtypes._compointer_base.from_params . Esta es toda la trazabilidad:
...
-> self.top_win = self.app.top_window()
c:/python27/lib/site-packages/pywinauto/application.py(1095)top_window()
-> backend=self.backend.name)
c:/python27/lib/site-packages/pywinauto/findwindows.py(197)find_elements()
-> cache_enable=True)
c:/python27/lib/site-packages/pywinauto/uia_element_info.py(272)children()
-> return self._get_elements(IUIA().tree_scope["children"], cond, cache_enable)
c:/python27/lib/site-packages/pywinauto/uia_element_info.py(261)_get_elements()
-> ptrs_array = self._element.FindAll(tree_scope, cond)
> c:/python27/lib/site-packages/comtypes/__init__.py(970)from_param()
-> return value
después de escribir step en pdb, muestra esto y luego se congela:
(Pdb) s
--Return--
> c:/python27/lib/site-packages/comtypes/__init__.py(970)from_param()-><POINTER... 41308a0>
-> return value
Parece que el problema está en usar comtypes con threads, intenté llamar a pythoncom.CoInitialize () en el hilo de llamada (y también en main) pero no ayudó.
¿Qué se puede hacer aquí?
Gracias.