我认为这是一个非常基本的问题,但无论如何。
我需要编写一个 python 脚本来检查以确保一个进程,比如 notepad.exe,正在运行。如果进程正在运行,则什么也不做。如果不是,请启动它。这将如何完成。
我在 Windows XP 上使用 Python 2.6
该模块的进程创建功能os
在 Python 2.6 及更高版本中显然已弃用,该subprocess
模块现在是首选模块,所以...
if 'notepad.exe' not in subprocess.Popen('tasklist', stdout=subprocess.PIPE).communicate()[0]:
subprocess.Popen('notepad.exe')
请注意,在 Python 3 中,被检查的字符串需要是一个字节对象,所以它是
if b'notepad.exe' not in [blah]:
subprocess.Popen('notepad.exe')
(要启动的文件/进程的名称不需要是字节对象。)
有几个选择,
1:更粗略但明显的是对以下内容进行一些文本处理:
os.popen('tasklist').read()
2:更复杂的选择是使用 pywin32 并研究 win32 API 以确定哪些进程正在运行。
3:WMI(我刚才发现了这个),这里有一个vbscript示例,说明如何通过WMI查询机器的进程。