I'm new to pywinauto. I'm trying to work with a Chinese software using the code below:
from pywinauto.application import Application
app = Application(backend="uia").start("../../../../../software/Barometer/GT5101.exe")
dlg_spec = app.window(title=u"气压计")
actionable_dlg = dlg_spec.wait('visible')
dlg_spec['Button6'].click()
and I got the error
--------------------------------------------------------------------------- COMError Traceback (most recent call last) Cell In[2], line 8 5 dlg_spec = app.window(title=u"气压计") 6 actionable_dlg = dlg_spec.wait('visible') ----> 8 dlg_spec['Button6'].click() File ~\anaconda3\Lib\site-packages\pywinauto\controls\uia_controls.py:121, in ButtonWrapper.click(self) 119 """Click the Button control by using Invoke or Select patterns""" 120 try: --> 121 self.invoke() 122 except NoPatternInterfaceError: 123 self.select() File ~\anaconda3\Lib\site-packages\pywinauto\controls\uiawrapper.py:513, in UIAWrapper.invoke(self) 510 name = self.element_info.name 511 control_type = self.element_info.control_type --> 513 self.iface_invoke.Invoke() 515 if name and control_type: 516 self.actions.log("Invoked " + control_type.lower() + ' "' + name + '"') COMError: (-2147220992, None, (None, None, None, 0, None))
Any idea what's happening?
PS: if you want to reproduce the error, here is the software https://drive.google.com/file/d/1xH6ahh87GmR9utxffz40wPkqwKrX-TKZ/view?usp=sharing
With the code above, I expect the software starting data collection, but got the error.
Use .click_input()
. Because .click()
is an alias of .invoke()
which is not always guaranteed to work, because the app should have proper handler for it.
Method .click_input()
should work in any case except locked desktop or minimized Remote Desktop window. Because .click_input()
and .type_keys()
generate just pure mouse and keyboard events in the system like normal user.