COM (MS Office) события в Powershell - PullRequest
       39

COM (MS Office) события в Powershell

0 голосов
/ 14 января 2019

Этот вопрос тесно связан с моим предыдущим: Обработка отмены COM-события в VBScript

Я хотел бы написать скрипт, который отправляет электронную почту через SMTP-сервер нашей компании с использованием CDO.

Сначала я попытался написать HTA-приложение для этой цели, но стало довольно неудобно делать его достаточно комфортным, чтобы другие люди могли справиться с ним (из-за правильного разрешения получателей).

Итак, теперь я пытаюсь использовать обычную маску Outlook-Mail, чтобы сначала подготовить почту, а затем перехватить событие send-item через Powershell, чтобы передать его содержимое моему сценарию CDO. Я пробовал это через VBScript раньше (см. Ссылку выше), но, похоже, это работает не так, как задумано.

Я довольно новичок в сценариях powershell, но в прошлом у меня уже были вещи, которые не работали в VBScript, поэтому я надеюсь снова решить мою проблему с ним. Прямо сейчас мой сценарий выглядит так:

$WSH = new-Object -ComObject "WScript.Shell"
$Outlook = new-Object -ComObject "Outlook.Application"
$olMailItem = 0

register-objectevent -InputObject $Outlook -EventName "ItemSend"

$MailObject = $Outlook.CreateItem($olMailItem)
$MailObject.Display()

function Outlook_ItemSend([object] $Item, [ref] $Cancel)
{
    $Cancel = $TRUE
    $WSH.PopUp("Event worked")
    return $Null
}

Я не зашел так далеко, как надеялся, потому что я вообще не могу понять, как запустить событие. Вы можете найти множество примеров для register-objectevent онлайн, но каждый раз, когда он кажется очень специфичным для какого-то особого COM-объекта. Я не смог найти ни одного примера для регистрации события MS-Office COM, для которого требуются параметры ...

1 Ответ

0 голосов
/ 14 января 2019

Вместо использования события вы можете отобразить сообщение модально - позвоните MailItem.Display и передайте true в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...