我有这个在Windows 10上正常工作的代码,我用它来使用pywinAuto向特定窗口发送文本和输入密钥,但一旦我try 在另一个使用win 11的系统中使用它,它就不起作用了. 代码如下:
import pywinauto
import time
boolBisCheckbox = False
def parar(eachFfox):
global boolBisCheckbox
if boolBisCheckbox == False:
appname = r"\[FIREFOX " + eachFfox + r"\]"
else:
appname = r"\[FIREFOX " + eachFfox + r"2\]"
handle = pywinauto.findwindows.find_window(title_re=appname)
app = pywinauto.application.Application(backend="win32").connect(handle=handle)
Wizard = app[appname]
Wizard.send_keystrokes("parar")
time.sleep(0.5)
Wizard.send_keystrokes("{ENTER}")
time.sleep(6)
Wizard.send_keystrokes("{ENTER}")
time.sleep(10)
Wizard.send_keystrokes("{ENTER}")
input()
parar("A")
错误如下:
Traceback (most recent call last):
File "C:\pypy\testParar.py", line 23, in <module>
parar("A")
File "C:\pypy\testParar.py", line 12, in parar
handle = pywinauto.findwindows.find_window(title_re=appname)
File "C:\Python\lib\site-packages\pywinauto\findwindows.py", line 113, in find_window
element = find_element(**kwargs)
File "C:\Python\lib\site-packages\pywinauto\findwindows.py", line 84, in find_element
elements = find_elements(**kwargs)
File "C:\Python\lib\site-packages\pywinauto\findwindows.py", line 283, in find_elements
elements = [elem for elem in elements if _title_match(elem)]
File "C:\Python\lib\site-packages\pywinauto\findwindows.py", line 283, in <listcomp>
elements = [elem for elem in elements if _title_match(elem)]
File "C:\Python\lib\site-packages\pywinauto\findwindows.py", line 279, in _title_match
t = w.rich_text
File "C:\Python\lib\site-packages\pywinauto\win32_element_info.py", line 83, in rich_text
return handleprops.text(self.handle)
File "C:\Python\lib\site-packages\pywinauto\handleprops.py", line 92, in text
buffer_ = create_unicode_buffer(length)
File "C:\Python\lib\ctypes\_init_.py", line 297, in create_unicode_buffer
buf = buftype()
MemoryError
我采用了另一台运行win 10的PC中使用的相同代码,并且该代码正常工作,并在win 11中使用了它.这两个系统都有32 GB的RAM. 我在谷歌上try 寻找类似的问题,但只找到了一个,而且没有问题的答案.