如何将Win32Gui Findwindow与通配符使用



我正在尝试查找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)

如果我输入正确的文件名,则可以使用,但是我不知道文件名。那么,只有知道标题的一部分,我该如何才能获得这项工作?

还是我必须在className上搜索?如果是这样,我怎么知道className :)?

额外说明:我确实知道文件名,但是它附有一个不知道的编号,例如filename88,并且每次运行程序时都会有所不同。

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)

此功能将返回包含您需要的较短字符串的完整文件名 - 但是,只有在您要搜索的文件是该目录中的substring的唯一文件时,它才能正常工作。如果您想要更健壮的东西,则应修改正则表达式。