为什么不能将控件标识符写入文件或赋值给字符串或列表

4 投票
2 回答
2869 浏览
提问于 2025-04-17 20:14

我正在使用pywinauto来列出某个应用程序的控件标识符。我能做到这一点,但我想把这些控件标识符保存到文件中,或者更好的是,把它们赋值给一个字符串或列表,但我无法写入或赋值……有没有人知道怎么把这些标识符以编程的方式保存到文件或内存中?

示例代码:

import os
import time
from pywinauto import application
from SendKeys import SendKeys


app=application.Application()
app.start_(r"C:\Program Files\myapp.exe")


app.dlg.print_control_identifiers()

Control Identifiers:
Button - 'Exit'   (L900, T649, R975, B672)
        'Button' 'Button0' 'Button1' 'Exit' 'ExitButton'
Button - 'About'   (L339, T646, R410, B672)
        'About' 'AboutButton' 'Button2'
...
...
...

我尝试了以下方法:

my_App_ci = app.dlg.print_control_identifiers()

还有:

my_App_ci = []
my_App_ci.append(app.dlg.print_control_identifiers())

但都没有成功……

2 个回答

7

你可以使用这个命令:print_control_identifiers(filename="路径\到\你的\桌面\文件.txt")

3

print_control_identifiers这个函数是把信息直接打印到标准输出(也就是屏幕)上,而不是把它作为字符串返回。我简单看了一下源代码,发现没有任何函数可以把这些信息获取为字符串,这在我看来设计得真不怎么样。

你可以通过把sys.stdout重新指向一个StringIO对象来捕获这些信息,然后从这个对象中获取字符串。或者你可以查看源代码,看看print_control_identifiers到底做了什么,然后自己写一个返回字符串列表的版本。

撰写回答