PythonでFindWindowExを使用してすべてのテキストボックスを走査するにはどうすればいいですか?
Pythonでは、pywin32ライブラリのFindWindowEx関数を使用して、ウィンドウ内のすべてのテキストボックスを反復処理できます。以下にサンプルコードを示します。
import win32gui def find_text_boxes(parent_handle):
text_boxes = []
handle = 0
while True:
handle = win32gui.FindWindowEx(parent_handle, handle, ‘Edit’, None)
if handle == 0:
break
text_boxes.append(handle)
return text_boxes # 示例使用 # 获取父窗口句柄 parent_handle = win32gui.FindWindow(None, ‘窗口标题’) # 遍历文本框 text_boxes = find_text_boxes(parent_handle) for handle in text_boxes:
# 获取文本框中的文本
text_length = win32gui.SendMessage(handle, win32con.WM_GETTEXTLENGTH) + 1
text_buffer = win32gui.PyMakeBuffer(text_length)
win32gui.SendMessage(handle, win32con.WM_GETTEXT, text_length, text_buffer)
text = text_buffer[:text_length]
print(‘文本框文本:’, text)
上記のサンプルコードでは、find_text_boxes関数に親ウィンドウのハンドルを渡すことでテキストボックスのハンドルを取得し、その後テキストボックスのハンドルを使用してSendMessage関数でテキストボックス内のテキストを取得しています。