Ein Powershell-Skript kann in Lync-Ereignisse eingebunden werden, wenn das Lync-SDK installiert ist (insbesondere eine DLL mit dem Namen Microsoft.Lync.Model.Dll).
Sie würden es mit einer Anweisung wie folgt importieren:
import-module "C:\Program Files (x86)\Microsoft Lync\SDK\Assemblies\Desktop\Microsoft.Lync.Model.Dll"
Dann erhalten Sie das Client-Objekt folgendermaßen:
$client = [Microsoft.Lync.Model.LyncClient]::GetClient()
Zum Schluss müssten Sie sich in die Ereignisse einklinken, bei denen Sie aktiv werden wollten:
$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++
}
}
Jedes Konversationsobjekt (offenes Chat-Fenster / Tab) hat mindestens zwei (manchmal) weitere Teilnehmer. Der obige Code überprüft jede dieser Konversationen und jeden Teilnehmer, ignoriert jedoch den Teilnehmer, der "Sie" (IsSelf) ist. Dieser Code löst dann jedes Mal die newInstantMessage-Funktion aus, wenn Ihnen jemand eine Nachricht sendet.
Am wichtigsten ist jedoch, dass Sie etwas am Ende des Powershell-Skripts benötigen, damit es nicht beendet wird, während (1) {} ausreicht. Schließlich möchten Sie vielleicht auch das ConversationAdded-Ereignis einhaken und neue InstantMessageReceived-Ereignisse in diesem registrieren. Andernfalls funktioniert es nur für bestehende Gespräche.
Für diejenigen, die sich nicht für das Warum und Warum interessieren, beabsichtige ich, mein Skript in naher Zukunft öffentlich zugänglich zu machen. Überprüfen Sie die Growl For Windows-Website.