gpt4 book ai didi

c# - 使用 Lync SDK 为 Skype for Business 中的所有参与者结束 session 的正确方法

转载 作者:太空宇宙 更新时间:2023-11-03 14:49:02 26 4
gpt4 key购买 nike

我正在尝试为所有使用 Microsoft Lync SDK for Skype for business 的参与者实现一个结束当前对话的功能。它应该像这样完成的工作:

conversation.End();

但它只会关闭开始 session 的参与者的窗口。还有其他方法吗?

最佳答案

“结束”方法只是按照你说的离开电话 session 。

“结束 session ”没有文档化的 API。

如果你真的想以编程方式执行此操作,那么你将需要使用类似 Windows Automation 的东西选择“更多选项”按钮,然后选择“结束 session ”按钮。

以下是使用 Windows 自动化单击“结束 session ”按钮的示例方法。

bool EndMeeting(ConversationWindow window)
{
var conversationWindowElement = AutomationElement.FromHandle(window.InnerObject.Handle);
if (conversationWindowElement == null)
{
return false;
}

AutomationElement moreOptionsMenuItem;
if (GetAutomationElement(conversationWindowElement, out moreOptionsMenuItem, "More options", ControlType.MenuItem))
{
(moreOptionsMenuItem.GetCurrentPattern(ExpandCollapsePattern.Pattern) as ExpandCollapsePattern).Expand();
}
else if (GetAutomationElement(conversationWindowElement, out moreOptionsMenuItem, "More options", ControlType.Button))
{
// in the Office 365 version of lync client, the more options menu item is actually a button
(moreOptionsMenuItem.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern).Invoke();
}
else
{
// didn't find it.
return false;
}

AutomationElement menuOptionAction;
if (!GetAutomationElement(moreOptionsMenuItem, out menuOptionAction, "End Meeting", ControlType.MenuItem))
{
return false;
}

(menuOptionAction.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern).Invoke();
return true;
}

private static bool GetAutomationElement(AutomationElement rootElement, out AutomationElement resultElement, string name, ControlType expectedControlType)
{
Condition propCondition = new PropertyCondition(AutomationElement.NameProperty, name, PropertyConditionFlags.IgnoreCase);
resultElement = rootElement.FindFirst(TreeScope.Subtree, propCondition);
if (resultElement == null)
{
return false;
}

var controlTypeId = resultElement.GetCurrentPropertyValue(AutomationElement.ControlTypeProperty) as ControlType;
if (!Equals(controlTypeId, expectedControlType))
{
return false;
}

return true;
}

关于c# - 使用 Lync SDK 为 Skype for Business 中的所有参与者结束 session 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52632956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com