cluic / wxauto

Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人
MIT License
2.75k stars 445 forks source link

Can not load UIAutomationCore.dll 怎么解决 #126

Open yht2004 opened 1 year ago

yht2004 commented 1 year ago

我的电脑是win10,电脑中存在UIAutomationCore.dll 文件,依然报如下错误

item 2 in argtypes passes a union by value, which is unsupported. Can not load UIAutomationCore.dll. 1, You may need to install Windows Update KB971513 if your OS is Windows XP, see https://github.com/yinkaisheng/WindowsUpdateKB971513ForIUIAutomation 2, You need to use an UIAutomationInitializerInThread object if use uiautomation in a thread, see demos/uiautomation_in_thread.py Traceback (most recent call last): File "C:\Program Files\Python38\lib\ctypes__init__.py", line 123, in WINFUNCTYPE return _win_functype_cache[(restype, argtypes, flags)] KeyError: (<class 'ctypes.HRESULT'>, (<class 'ctypes.c_long'>, <class 'comtypes.automation.tagVARIANT'>, <class 'comtypes.LP_POINTER(IUIAutomationCondition)'>), 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "D:/yht/monitor_interface/wx_chat/message_monitor.py", line 12, in messages = wx_cli.GetAllMessage File "C:\Program Files\Python38\lib\site-packages\wxauto\wxauto.py", line 265, in GetAllMessage MsgItems = self.MsgList.GetChildren() File "C:\Program Files\Python38\lib\site-packages\uiautomation\uiautomation.py", line 6345, in GetChildren child = self.GetFirstChildControl() File "C:\Program Files\Python38\lib\site-packages\uiautomation\uiautomation.py", line 6291, in GetFirstChildControl ele = _AutomationClient.instance().ViewWalker.GetFirstChildElement(self.Element) File "C:\Program Files\Python38\lib\site-packages\uiautomation\uiautomation.py", line 53, in instance cls._instance = cls() File "C:\Program Files\Python38\lib\site-packages\uiautomation\uiautomation.py", line 72, in init raise ex File "C:\Program Files\Python38\lib\site-packages\uiautomation\uiautomation.py", line 60, in init self.UIAutomationCore = comtypes.client.GetModule("UIAutomationCore.dll") File "C:\Program Files\Python38\lib\site-packages\comtypes\client_generate.py", line 132, in GetModule mod = _create_wrapper_module(tlib, pathname) File "C:\Program Files\Python38\lib\site-packages\comtypes\client_generate.py", line 246, in _create_wrapper_module return _create_module_in_file(modulename, code) File "C:\Program Files\Python38\lib\site-packages\comtypes\client_generate.py", line 186, in _create_module_in_file return _my_import(modulename) File "C:\Program Files\Python38\lib\site-packages\comtypes\client_generate.py", line 34, in _my_import return importlib.import_module(fullname) File "C:\Program Files\Python38\lib\importlib__init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1014, in _gcd_import File "", line 991, in _find_and_load File "", line 975, in _find_and_load_unlocked File "", line 671, in _load_unlocked File "", line 783, in exec_module File "", line 219, in _call_with_frames_removed File "C:\Program Files\Python38\lib\site-packages\comtypes\gen_944DE083_8FB8_45CF_BCB7_C477ACB2F897_0_1_0.py", line 187, in IUIAutomation.methods = [ File "C:\Program Files\Python38\lib\site-packages\comtypes__init.py", line 399, in setattr self._make_methods(value) File "C:\Program Files\Python38\lib\site-packages\comtypes\init__.py", line 568, in _make_methods member_gen.add(m) File "C:\Program Files\Python38\lib\site-packages\comtypes_memberspec.py", line 349, in add proto = ctypes.WINFUNCTYPE(m.restype, *m.argtypes) File "C:\Program Files\Python38\lib\ctypes\init__.py", line 125, in WINFUNCTYPE class WinFunctionType(_CFuncPtr): TypeError: item 2 in argtypes passes a union by value, which is unsupported.

yh1121yh commented 1 month ago

在自己代码,或者wxauto内的uiautomation.py文件, 加个引用就行了 from comtypes.gen.UIAutomationClient import IUIAutomation