Дождитесь открытия процесса в python

Я пытаюсь сделать программу Python, которая ждет, чтобы обработать, чтобы открыть, а затем он делает несколько вещей,
в моем случае эти "несколько вещей" будут в функции с именем action().
Мне немного сложно с этим, вот что я делал до сих пор.
Я нашел ту функцию, которая проверяет, запущен ли процесс из tasklist.exe

def isWindowsProcessRunning( exeName ) :            
    import subprocess    
    process = subprocess.Popen( 
        'tasklist.exe /FO CSV /FI "IMAGENAME eq %s"' % exeName,
        stdout=subprocess.PIPE, stderr=subprocess.PIPE,
        universal_newlines=True )
    out, err = process.communicate()    
    try : return out.split("\n")[1].startswith('"%s"' % exeName)
    except : return False

И я подумал использовать это таким образом:

if( isWindowsPrecessRunning("chrome.exe") == False ):
    print "Waiting for chrome to open.."
    while( True ):
        if( isWindowsPrecessRunning("chrome.exe") == True ):
            action()
else:
    print "Chrome must be closed when the program starts, please close chrome, and re-open the program"

Проблема в том, что программа была построена с "tkinter" для Windows,
и пока я включаю его один раз, а Chrome не работает - программа попадает в бесконечный цикл.
Этот бесконечный цикл не позволяет пользователю программы что-либо делать, потому что он открывает чистый cmd, закрывает его, открывает его, закрывает его и т. Д. Пользователь даже не может его закрыть.
У кого-нибудь есть идеи о том, как это сделать?
Заранее спасибо:)

0 ответов

Другие вопросы по тегам