Lync 2013にアップグレードしたばかりで、Pidgin + SIPEの代わりに使用することを検討しています。 Pidginの多くの素晴らしい機能の1つは、Growlの統合です...そして私はそれを見逃します。
Lync用のGrowlプラグインはなく、作業中もありませんが、実際には必要ありません...シェルスクリプトからGrowl通知を発行する方法をすでに発見しました。必要なのは、Lyncへのフックだけです。 batファイル(またはおそらくPowershell)を起動します。これをジガーしたり、黙認したりする方法はありますか?
Microsoft Lync SDKのドキュメントでは、可能性がある可能性があるように見えますが、私には意味不明のように聞こえます。誰かが私が始めるのを手伝ってくれるか、少なくとも可能性としてスクリプトを除外することはできますか?
Lync SDKがインストールされている場合(特にMicrosoft.Lync.Model.Dllと呼ばれるdll)、PowershellスクリプトはLyncイベントにフックできます。
次のようなステートメントでインポートします。
import-module "C:\Program Files (x86)\Microsoft Lync\SDK\Assemblies\Desktop\Microsoft.Lync.Model.Dll"
次に、次のようなクライアントオブジェクトを取得します。
$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++
}
}
各会話オブジェクト(IMウィンドウ/タブを開く)には少なくとも2人(場合によっては)以上の参加者がいます。上記のコードは、これらの会話のそれぞれとその中の各参加者をチェックしますが、「あなた」(IsSelf)である参加者を無視します。このコードは、誰かがあなたにメッセージを送信するたびに、newInstantMessage関数を起動します。
最も重要なことは、PowerShellスクリプトが終了しないようにするために、PowerShellスクリプトの最後に何かが必要ですが、(1){}で十分です。最後に、ConversationAddedイベントをフックして、その中に新しいInstantMessageReceivedイベントを登録することもできます。それ以外の場合は、既存の会話に対してのみ機能します。
方法や理由に興味がない人のために、近い将来、スクリプトを公開する予定です。 Growl ForWindowsのWebサイトを確認してください。