pywinauto获取客户端架构数据问题,取不到好友信息弹框,求帮助
补充说明:
dlg.print_control_identifiers()打印信息中没有需要的弹框信息,请各位确定能获取的朋友再回复!!!
注:用其他技术也可以,所有朋友们,可以用钉验证确定能拿到结果再联系,多谢啦

pywinauto获取客户端架构数据问题,取不到好友信息弹框,求帮助
补充说明:
dlg.print_control_identifiers()打印信息中没有需要的弹框信息,请各位确定能获取的朋友再回复!!!
注:用其他技术也可以,所有朋友们,可以用钉验证确定能拿到结果再联系,多谢啦

我长期活跃于技术社区,热衷于帮助他人解决各类技术难题。很高兴在 CSDN 上回答你的问题,让我们一起探讨,找到解决问题的最佳方案吧。以下是关于使用pywinauto获取类似图中客户端架构数据(特别是取不到好友信息弹框问题)的分析和解决方案:
from pywinauto import Application
# 启动应用程序(根据实际情况修改路径)
app = Application(backend="uia").start("your_app_path.exe")
# 等待并获取主窗口
main_window = app.window(title_re="Your App Title")
main_window.wait('visible')
# 根据Inspect工具获取的信息查找好友信息弹框
friend_info_dialog = main_window.child_window(title="好友信息", control_type="Window")
if friend_info_dialog.exists():
# 获取昵称输入框的值(根据实际控件属性修改)
nickname_edit = friend_info_dialog.child_window(auto_id="nickname_edit_control_id", control_type="Edit")
print(nickname_edit.window_text())
set_focus()或wait('enabled')等方法来确保窗口处于可交互状态。# 确保好友信息弹框可交互
friend_info_dialog.set_focus()
friend_info_dialog.wait('enabled')
# 再尝试获取其中控件信息
nickname_edit = friend_info_dialog.child_window(auto_id="nickname_edit_control_id", control_type="Edit")
if nickname_edit.exists():
print(nickname_edit.window_text())
import cv2
import pytesseract
# 假设通过OpenCV定位到好友信息弹框的屏幕截图区域为(x, y, width, height)
x, y, width, height = 100, 100, 300, 200
# 截图并保存为临时文件
screenshot = pyautogui.screenshot(region=(x, y, width, height))
screenshot.save('temp_screenshot.png')
# 使用OCR提取文本信息
text = pytesseract.image_to_string(cv2.imread('temp_screenshot.png'), lang='chi_sim+eng')
print(text)
wait('enabled')和set_focus()方法等待并激活弹框后,成功获取到其中的控件信息。通过上述方法可以更有效地解决使用pywinauto获取客户端架构数据(尤其是取不到好友信息弹框等问题),根据实际情况灵活运用和调整这些技术手段。