0

したがって、基本的には、画像を開いて数秒後に time.sleep で閉じようとしています。まずは使ってみた

import Image
import time
myImage = Image.open("C:\\Users\\User\\Desktop\\image.jpg")
myImage.show()
time.sleep(5)

しかし、Windows フォト ビューアーがファイルを見つけられず、画像を開くことさえできなかったため、これはうまくいきませんでした。ただし、このように webbrowser.open を使用すると

import webbrowser
webbrowser.open('C:\\Users\\User\\Desktop\\image.jpg')
webbrowser.close()

Windows フォト ビューアーでファイルを正常に開くことができますが、閉じることはできないようです。次のエラーが表示されます。

AttributeError: 'module' object has no attribute 'close'

私は2日間探していましたが、実用的な解決策はありません。重要な場合に備えて、画像は.jpgです。また、デフォルトの画像ビューアを変更したり、これを使用する他の人が変更しなければならないものを変更したりしたくありません。Python 2.7 を使用しています。

どんな助けでも大歓迎です!

4

2 に答える 2

2

これは、windows_xp_sp3 で行う私の方法です。

OS、時間のインポート
pic=["C:\\19.jpg","C:\\20.jpg","C:\\21.jpg","C:\\22.jpg"]
写真の p の場合:
    os.startfile(p)
    時間.スリープ(3)
os.system("タスクキル/IM rundll32.exe")

または、これを試してください:

サブプロセスのインポート、時間
pic=["C:\\19.jpg","C:\\20.jpg","C:\\21.jpg","C:\\22.jpg","C:\\23. jpg","C:\\24.jpg","C:\\25.jpg","C:\\26.jpg","C:\\27.jpg"]
写真の p の場合:
    r=subprocess.Popen(p,shell=True)
    時間.スリープ(3)
# r.kill() # "shell=True" が設定されているため動作しません。"サブプロセス" を強制終了する必要がある場合は、使用しないでください。

このような:

os、サブプロセス、時間のインポート
pic=["C:\\19.jpg","C:\\20.jpg","C:\\21.jpg","C:\\22.jpg","C:\\23. jpg","C:\\24.jpg","C:\\25.jpg","C:\\26.jpg","C:\\27.jpg"]

写真の p の場合:
    r=subprocess.Popen(["rundll32.exe","shimgvw.dll,ImageView_Fullscreen",p])
    時間.スリープ(3)
    r.kill()
于 2013-09-18T12:46:07.853 に答える
0

ここで間違った方向に進んでいます。閉じるには、ブラウザにそのタブやウィンドウなどを閉じるように指示する必要があります。

ブラウザにそれを行うように指示する方法は標準化されておらず、ブラウザごと、または実際には写真ビューアごとに異なるものについても同じことが当てはまります。

写真の開閉の両方を制御したい場合は、ブラウザーなどの別のプログラムを呼び出すのではなく、Python プログラム内から制御することをお勧めします。

于 2013-09-18T11:24:54.293 に答える