这个问题与https://stackoverflow.com/questions/6839516/outlook-2010-reopen-messages非常相似,因为这不是一个问题而被关闭。
我养成了在Outlook 2010中保持电子邮件打开的坏习惯,以提醒我,因为我不断被打断,白天需要做些什么。我想做的是使用PowerShell获取打开的电子邮件列表,这样如果我需要关闭Outlook,我就知道我之前在做什么。
我并不担心Outlook崩溃,Outlook通常会重新打开我自动处理的所有电子邮件;我正在处理的用例是我必须手动关闭Outlook以获取补丁或解决其他问题。
我想要做的是查询正在运行的Outlook进程并查看哪些消息是打开的;通过COM打开一个新的Outlook进程将无法工作,因为它将有一个不同的打开消息列表。
有没有人知道在PowerShell中执行此操作的方法?如果需要,我可以使用其他语言,但在可能的情况下尝试对PowerShell进行标准化,以便其他人可以重用我编写的任何代码。
我考虑过的一种可能性是通过PowerShell启动Outlook,以便我有办法与正在运行的进程进行交互。
答案 0 :(得分:0)
首先,您需要获取对正在运行的Outlook实例的引用。
$outlook = [System.Runtime.InteropServices.Marshal]::GetActiveObject('Outlook.Application')
然后使用应用程序对象
outlook.Inspectors
集合Inspector
询问其CurrentItem