检查 Python Outlook 是否已经打开,如果没有打开它

Check with Python if Outlook is already open, if not open it

我写了一个 python 脚本,它经常通过 Outlook 发送邮件。问题是如果我没有打开 Outlook,则不会发送任何邮件。 (我使用的是 Outlook 2013) 现在我想在我的脚本开头检查 Outlook 是否已经打开,如果没有我想用 python 打开它以避免错误。

如何通过 Python 2.7 检查 Outlook 是否已经 运行?要启动 Outlook,我将使用简单的代码:

import os
os.startfile("outlook")

感谢您的帮助!

查看 outlook 启动了哪个进程,然后使用此代码检查该进程是否 运行:

def isprocessrunning(process):
  import re
  import subprocess

  running = False
  processlist = subprocess.Popen(["ps", "ax"],stdout=subprocess.PIPE)
  for a in processlist.stdout:
      if re.search(process, a):
          running = True

  return running

#For Example, 
isprocessrunning("chrome".encode('utf-8'))
#Returns True if Chrome is running

参考: Check if a process is running in Python (in Linux/Unix)

由于 OP 要求检查 Outlook,我猜这是针对 windows 而不是 unix。此问题之前已在 another question 中介绍,您可以在其中找到更多详细信息。

我尝试了以下代码片段,它在 python 3.4 上运行良好。我只需要通过 pip install pypiwin32.

安装 win32 包
def outlook_is_running():
    import win32ui
    try:
        win32ui.FindWindow(None, "Microsoft Outlook")
        return True
    except win32ui.error:
        return False

if not outlook_is_running():
    import os
    os.startfile("outlook")