我正在尝试制作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"
问题是该程序是用windows的“tkinter”构建的
当我打开它一次,并且chrome没有运行 - 程序进入无限循环。
无限循环,阻止程序的用户做任何事情,因为它打开一个清晰的cmd,关闭它,打开它,关闭它等等 - 用户甚至无法关闭它。
有没有人知道如何做到这一点?
在此先感谢:)