3

Я только что обновился до Lync 2013, и я собираюсь использовать его вместо Pidgin+SIPE. Одна из многих приятных особенностей Pidgin - это интеграция с Growl ... и я бы упустил это.

Нет никаких плагинов Growl для Lync и нет в работе, но мне это не нужно ... Я уже обнаружил, как выдавать уведомления Growl из сценария оболочки, и все, что мне нужно, это подключиться к Lync для запуска файла bat (или, возможно, Powershell). Есть ли какой-нибудь способ, чтобы спровоцировать это?

В документации Microsoft Lync SDK создает впечатление , что это может быть возможно, но это звучит как gobbledegook мне. Может ли кто-нибудь помочь мне начать, или, по крайней мере, исключить сценарии как возможность?

2 ответа2

3

Судя по этому, и это, мой курс действий будет написать код , который вызывает внешний исполняемый файл и передает аргументы также (PowerShell.exe, например), и привязать его к принятому событию IM, если существует такое событие, я Я сейчас скачиваю SDK, поэтому я обновлю то, что найду. Но таким образом, вы не ограничены тем, что происходит при получении мгновенного сообщения.

0

Сценарий Powershell может подключаться к событиям Lync, если установлен Lync SDK (в частности, dll под названием Microsoft.Lync.Модель.Dll.

Вы импортируете это с помощью заявления вроде этого:

import-module "C:\Program Files (x86)\Microsoft Lync\SDK\Assemblies\Desktop\Microsoft.Lync.Model.Dll"

Тогда вы получите объект client следующим образом:

$client = [Microsoft.Lync.Model.LyncClient]::GetClient()

Наконец, вам нужно подключиться к событиям, на которые вы хотели воздействовать:

$i = 0
# For each conversation
foreach ($con in $client.ConversationManager.Conversations) {
  # For each participant in the conversation
  $con.Participants | Where { !$_.IsSelf } | foreach {
    Register-ObjectEvent -InputObject $_.Modalities[1] -EventName "InstantMessageReceived" -SourceIdentifier "person $i" -action { newInstantMessage }
    $i++
   }
}

Каждый объект разговора (открытое окно / вкладка чата) имеет как минимум двух участников (иногда) больше, приведенный выше код проверяет каждый из этих разговоров и каждого участника в них, но игнорирует участника, которым является "вы" (IsSelf). Затем этот код запускает функцию newInstantMessage каждый раз, когда кто-то отправляет вам сообщение.

Самое главное, что вам нужно что-то в конце скрипта powershell, чтобы не допустить его выхода, тогда как (1) {} достаточно. Наконец, вы можете захотеть перехватить событие ConversationAdded и внутри него зарегистрировать новые события InstantMessageReceived. В противном случае это будет работать только для существующих разговоров.

Для тех, кто не заинтересован в том, как и почему, я намерен сделать свой сценарий общедоступным в ближайшем будущем. Проверьте сайт Growl For Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .