У меня есть код:
def get_text(self, id):
edit_hwnd = win32gui.GetDlgItem(self.hwnd, id) # 获取窗口句柄
time.sleep(0.2)
self.edit_hwnd = edit_hwnd
length = win32api.SendMessage(
edit_hwnd, win32con.WM_GETTEXTLENGTH) + 1 # 获取窗体内容长度
buf = win32gui.PyMakeBuffer(length) # 准备buffer对象作为容器
win32gui.SendMessage(edit_hwnd, win32con.WM_GETTEXT,
length, buf) # 获取窗体内容放入容器
try:
address, length = win32gui.PyGetBufferAddressAndLen(buf) # 获取容器的内存地址
except ValueError:
print('error')
return
text = win32gui.PyGetString(address, length) # 取得字符串
buf.release()
del buf
return text
Эта функция для получения строки в Windows. Мне нужно, чтобы эта функция всегда получала это значение. Когда значение изменяется, я что-то делаю. Но теперь, когда я это сделал, моя программа завершает работу с кодом ошибки C000005.Как можно я исправляю это.
buf.release()
del buf
Это я добавил, когда обнаружил эту проблему. Похоже, не работает.