カスタム メニュー項目、カスタム会話ウィンドウ、およびそれらの内部のイベントは確認できますが、ユーザーが Lync にサインインした後のコードの実行方法については何も言及されていません。そのような API は存在しますか?
私の代替手段は、抑制された ui を使用して Lync オートメーション オブジェクト/自分のクライアントを作成し、それらのいずれかに必要な機能を構築することでしょうか?
Lync アプリケーションに組み込むことができるものは何もありませんが、ユーザーのサインイン状態をサブスクライブできる別のアプリケーションを実行できます。そうすれば、ユーザーがいつサインインしたかを知ることができ、適切なアクションを実行できます。そのための SuppressedUI アプリケーションを作成する必要はありません。バックグラウンドで実行されるもの、またはタスクバーなどを作成するだけです。
必要最小限の例を次に示します。
namespace ThoughtStuff
{
class Program
{
static void Main(string[] args)
{
var client = LyncClient.GetClient();
client.StateChanged += client_StateChanged;
}
static void client_StateChanged(object sender, ClientStateChangedEventArgs e)
{
if (e.NewState == ClientState.SignedIn)
{
//do something on sign in
}
}
}
}
Lync exe が実行されていない場合に、LyncClient.GetClient() を使用して SDK コードで Lync にアタッチしようとすると、エラーが発生する可能性があります...しかし、それが問題になる可能性が高いことがわかっている場合 (アプリケーションがユーザーが Lync を開始する前に実行されている場合)、それを適切に処理し、コードで再試行できます。