Дождитесь открытия процесса в 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, закрывает его, открывает его, закрывает его и т. Д. Пользователь даже не может его закрыть.
У кого-нибудь есть идеи о том, как это сделать?
Заранее спасибо:)