質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.98%

  • Python 2.7

    1099questions

    Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python Pywinautoでメモ帳に自動で文字を書いて保存したい。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 384

03972020

score 3

環境 Windows 7 Python2.7

コマンドラインで以下を実行。正常に動いた。
>>>from pywinauto import applicatio
>>>app = application.Application.start("notepad.exe")
>>>app.Notepad.Edit1.SetText("   123   ")
>>>app.Notepad.MenuSelect(u"ファイル->名前を付けて保存")
>>>dialog = app[u"名前を付けて保存"]
>>>dialog.Edit1.SetText(u"test.txt")
>>>dialog.Button1.Click()

以下エディターでスクリプトを作成し保存

coding: utf-8 (#を先頭に付けた。何故かこの記号は表示されない。)
from datetime import datetime
from pywinauto import application
app = application.Application.start("notepad.exe")
app.Notepad.Edit1.SetText("   123   ")
app.Notepad.MenuSelect(u"ファイル->名前を付けて保存")
dialog = app[u"名前を付けて保存"]
dialog.Edit1.SetText(u"test.txt")
dialog.Button1.Click()

実行したが、保存出来なかった。
app.Notepad.Edit1.SetText("   123   ")までは正常に動作。
app.Notepad.MenuSelect(u"ファイル->名前を付けて保存") 以降を削除して動作確認したところ、この行がうまく動作していないよです。
保存のウインドウが表示されず終了してしいます。

エディターで書いて動かすとうまく動かないので宜しくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

まず、.pyファイルの文字コードが正しくUTF-8で保存されているか確認ください。
次に、正しく保存されていても、当方環境(Python=2.7.14, pywinauto=0.6.3, Windows10)で同様現象が再現しました。
こちらの環境では、ファイル保存ダイアログは表示されtest.txt入力までは動作しましたが、最後の保存ボタンクリックが動作しませんでした。
原因は不明ですが、とりあえず以下のように修正することでボタンクリック動作させることができました。
参考まで。

参考:pywinautoでGUIのメニューをクリック

from pywinauto import application
app = application.Application().start("notepad.exe") # Application -> Application()
app.Notepad.Edit1.SetText("   123   ")
app.Notepad.MenuSelect(u"ファイル->名前を付けて保存")
dialog = app[u"名前を付けて保存"]
dialog.Edit1.SetText(u"test.txt")

# 反応しなければ再試行
dialog.Button1.Click()
if dialog.Button1.Exists():
    dialog.Button1.Click()

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/31 17:09

    ご回答有難う御座いました。

    if文以降を追加して試しましたが、変化ありません。
    環境 Python=2.7.14, pywinauto=0.4.0, Windows7

    「.pyファイルの文字コードが正しくUTF-8で保存されているか確認ください。」とありますが、具体的には何を見れば宜しいでしょうか。

    宜しくお願いします。

    キャンセル

  • 2017/10/31 17:15

    お使いのエディタが不明ですが、たとえばサクラエディタであればファイルを開くとステータスバーに表示されるので確認できます。
    他の確認方法については「Windows テキストファイル エンコーディング 確認」なりで検索してみてください。

    キャンセル

  • 2017/10/31 17:33

    早速回答有難う御座いました。
    エンコードを確認したところ、シフトJISでした、
    保存時にUTF-8指定して保存したところ正常に動作しました。
    有難う御座いました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.98%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python 2.7

    1099questions

    Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。