4

Microsoft Excel に開いているウィンドウがあるかどうかを確認しようとしています

import win32ui
import time

def WindowExists(windowname):
    try:
        win32ui.FindWindow(None, windowname)

    except win32ui.error:
        return False
    else:
        return True

if WindowExists("filename - Microsoft Excel"):
    print "Program is running"
    time.sleep(10)
else:
    print "Program is not running"
    time.sleep(10)

これは、正しいファイル名を入力すれば機能しますが、ファイル名がわかりません。では、タイトルの一部しか知らないのに、どうすればこの作品を手に入れることができるのでしょうか?

または、代わりにクラス名を検索する必要がありますか? もしそうなら、どうすればクラス名を知ることができますか:)?

追加の注意: ファイル名は知っていますが、filename88 のような未知の番号が付けられており、プログラムを実行するたびに異なります。

4

1 に答える 1

-2
def find_filename(substring):
    import os
    import re
    files = os.listdir(os.getcwd())
    for file in files:
        search = re.search(substring, file)
        if search:
            filename = file
            break
    return filename

file = find_filename('stringyouwant')
WindowExists(file)

この関数は、必要な短い文字列を含む完全なファイル名を返しますが、検索しているファイルがそのディレクトリ内のその部分文字列を持つ唯一のファイルである場合にのみ機能します。より堅牢なものが必要な場合は、正規表現を変更する必要があります。

于 2014-01-24T14:58:13.380 に答える