3

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())

無駄に ....

4

2 に答える 2

5

print_control_identifiers(filename = "path \ to \ your \ desktop \ file.txt")を使用できます

于 2018-01-16T13:40:09.000 に答える
2

print_control_identifiersは、文字列を返す代わりにstdoutに出力します。ソースをざっと見てみましたが、文字列として取得する関数が見つかりませんでした。これはかなりくだらないデザインの私見です。

sys.stdoutをStringIOオブジェクトに再割り当てし、そこから文字列を取得することで、情報を取得できます。または、ソースを読んでprint_control_identifiersの機能を確認し、文字列のリストを返すバージョンを作成します。

于 2013-03-25T17:59:26.263 に答える