Как использовать win32gui FindWindow с Wildcard
Я пытаюсь найти открытое окно 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, и он меняется каждый раз, когда я запускаю программу.
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)
Эта функция вернет полное имя файла, которое содержит более короткую строку, которая вам требуется, однако она будет работать только в том случае, если искомый файл является единственным файлом с этой подстрокой в этом каталоге. Если вы хотите что-то более надежное, вы должны изменить регулярное выражение.
Нашел ответ, который я действительно искал Здесь
Ответ рабов также был полезен для меня, спасибо!