0

私はPythonにほとんど慣れていないので、モジュール「pywinauto」を使用して、論文に使用しているプログラムを制御し始めました。

私はこのようにすべてを正しくやっています: from pywinauto import application

prog=application.Application()
prog.start_('RAMPlus.exe')
prog.RAMPlus.MenuSelect('File->New')

ここまではすべて問題ありませんが、「新規」ウィンドウは次のようになります。

新しいウィンドウのスクリーンショット

2 つのテーブル、1 つは「左上」、もう 1 つは「右下」という名前です。各表には「Lat:」と「Long:」の 2 行があり、各行には 3 つの行があります。各行の値を変更する必要があります

私が試したら

a.New.UpperLeftCombo.Click() 

「pywinauto.controls.win32_controls.StaticWrapper object at 0x013A9BF0>」というメッセージが表示されるので、「pywinauto」は「左上」と「右下」を認識していると思いますが、残りは選択方法がわかりません。

何か案は?

PS: pywinauto の作成者であるユーザー「markm」がここで質問に答えているのをどこかで見ました。サイト初心者なのでよくわかりません

助けてくれてありがとう

編集: pywinauto を使用して、ウィンドウの内容全体を txt ファイルにコピーできるかどうか知っていますか?

4

3 に答える 3

0

私はSwapyでなんとか回避しているので、この質問は解決しました。

もう 1 つ質問があります。「pywinauto」と「swapy」は 64 ビット システムでは動作しないのでしょうか。32 ビットと 64 ビットの 2 つのワークスペースがあり、両方で作業したいと思っています。

于 2013-04-09T15:16:43.147 に答える
0

テーブル内の行を直接「選択」できない場合があります。のような pywinauto のメソッドはありませんa.New.UpperLeftCombo.SelectRow()

代わりにできることは、キープレスをテーブルに送信して行を選択してから選択することです。たとえば、上下の矢印キーを使用して行を選択し、スペースを押して選択することができます。のTypeKeysメソッドを使用しHwndWrapperて、キー押下をコントロールに送信します。

于 2013-04-05T19:27:23.973 に答える
0

pywinauto は、Windows ListView コモン コントロールの場合、テーブルを操作できます。ListViewWrapper には、テーブルに対して十分なメソッドがあります: ColumnCount(), GetSelectedCount(), Select(item)など。

でテーブル コントロールを使用しているかどうかはわかりませんが、単なる text( ) のa.New.UpperLeftCombo.Click()ようです。UpperLeftCombopywinauto.controls.win32_controls.StaticWrapper object at 0x013A9BF0>

ウィンドウのすべてのコントロールを取得して、コントロールを探しますListView

a.New.print_control_identifiers()または、最も簡単な方法は、pywinauto の GUI ツールの 1 つを使用することです。偶然にも、私はそのうちの 1 人の著者です。

于 2013-04-06T06:21:16.367 に答える