PowerShell для открытия Outlook, сделать видимым - PullRequest
2 голосов
/ 09 сентября 2010

Моя миссия - перейти от использования PowerShell для создания экземпляра Outlook к простому просмотру или сделать видимым процесс, который я вижу в TaskManager.

Для Digress это работает для Word.Application
, но не для Outlook.Application.

$MsApp = New-Object -comObject Word.Application 

$MsApp.Visible = $true

Я проверил методы, но не могу найти подходящий глагол для открытия, запуска или отображения.

Я был бы очень благодарен зарешение.

Ответы [ 2 ]

6 голосов
/ 10 сентября 2010

Чтобы активировать работающий 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 голосов
/ 10 сентября 2010

Если вы хотите сделать видимым уже запущенный экземпляр Word или Outlook, вы не хотите использовать New-Object. Вы хотите получить бегущий объект. Вы можете сделать это с помощью вызова .NET:

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