python multithreading com pywinauto comtypes

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.