我可以在其中看到自定义菜单项和自定义对话窗口和事件,但没有提及用户登录 Lync 后您将如何执行代码。这样的 API 存在吗?
我想我的替代方案是使用 Suppressed 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 之前运行),那么您可以优雅地处理它并在代码中重试。