2010-09-09 112 views
2

我的使命是从使用PowerShell创建一个Outlook实例来简单地查看,或使可见的过程,我可以在TaskManager中看到毕业。PowerShell打开Outlook,使可见

对于Digress,这适用于Word,但不适用于我替换Outlook。为Word。

$ MsApp =新物体-ComObject Word.Application

$ MsApp.Visible = $真实

我已经检查方法,但不能找到一个合适的动词打开,运行或使可见。 我会很感激解决方案。

回答

6

要激活这只是最小化的运行Outlook:

[Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application").ActiveWindow().Activate() 

要创建一个Outlook实例是可见的(这是最简单的,只是start outlook.exe):

(new-object -com Outlook.Application).GetNamespace("MAPI").GetDefaultFolder("olFolderInbox").GetExplorer().Display() 

为了使代码更清晰:

$outlook = new-object -com Outlook.Application 
$namespace = $outlook.GetNamespace("MAPI") 
$folder = $namespace.GetDefaultFolder("olFolderInbox") 
$explorer = $folder.GetExplorer() 
$explorer.Display() 
+0

辉煌 - 正是我想要的,谢谢。 – 2010-09-10 16:11:25

0

如果您希望使已经运行的Word或Outlook实例可见,则不需要使用New-Object。你想获得运行的对象。你可以用.NET调用做到这一点:

$word = [Runtime.InteropServices.Marshal]::GetActiveObject("Word.Application") 
$word.Visible = $true 
+0

谢谢Keith,明天我会试试。 – 2010-09-09 21:11:19

+0

它适用于WORD,但不适用于Outlook。 – 2010-09-10 16:10:56

+0

@GuyThomas:尝试'$ Outlook = [Runtime.InteropServices.Marshal] :: GetActiveObject(“Outlook.Application”) $ outlook.ActiveWindow()。Activate()' – craig 2014-12-05 18:22:54