首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在浏览器外通过Silverlight调用Office Communicator

在浏览器外通过Silverlight调用Office Communicator
EN

Stack Overflow用户
提问于 2010-08-18 05:05:54
回答 2查看 1K关注 0票数 2

当浏览器耗尽时,我需要调用office communicator来直接从Silverlight创建聊天窗口和电话呼叫。当在浏览器中运行时,我这样做了,它工作得很好:

代码语言:javascript
复制
System.Windows.Browser.HtmlPage.Window.Eval(String.Format("window.open(\"sip:{0}\", target=\"_self\");", sip));

当浏览器耗尽时,我所得到的就是通过动态调用Communicator.UIAutomation,但老实说,我不知道下一步该做什么。

代码语言:javascript
复制
dynamic communicator = AutomationFactory.CreateObject("Communicator.UIAutomation");

有没有人有任何关于如何使其工作的建议?搜索结果为零。

EN

回答 2

Stack Overflow用户

发布于 2010-08-18 05:26:02

我有几个想法:

您是否尝试过将自动Communicator对象设置为var,然后设置断点并深入研究生成的水合对象?您可能会在对象上找到一些方法或属性,您可以使用它们来实现某些事情。

有一个描述Office Communicator SDK的博客here,并且有一些示例项目。我认为您可以在OOB应用程序中包含SDK程序集,并使用Microsoft提供的SDK自动执行Communicator。

票数 0
EN

Stack Overflow用户

发布于 2010-08-18 18:52:23

SDK必须预装在用户机器上。在你的Silvelright OOB应用程序中没有简单的方法来部署它。

您将需要SDK

您可以在此处查看文档以了解更多详细信息: C:\Program Files (x86)\Microsoft Office Communicator\SDK\OCSDK.chm它主要指C#,但大多数都可以很容易地移植到Com Automation。作为示例,请看以下启动对话的代码

代码语言:javascript
复制
dynamic comm = new ActiveXObject("Communicator.UIAutomation");
dynamic msgrAdv = comm.IMessengerAdvanced;
if(msgrAdv!=null)
{
    try
    {
        object obj = msgrAdv.StartConversation(
                   1, //CONVERSATION_TYPE.CONVERSATION_TYPE_IM,
                   sipUris, // object array of signin names
                   null,
                   "Testing",
                   "1",
                   null);
        windowHandle = long.Parse(obj.ToString());
    }
    catch (COMException ex)
    {
        this.writeToTextBox(
                formReturnErrors.returnComError(ex.ErrorCode)
    );

}

我希望这能有所帮助。请注意,在帮助文件的示例中,我更改了.NET程序集中定义的一些成员(不能从C#代码中引用它们)。如果您需要这样做,我建议在Reflector中打开CommunicatorAPI.dll程序集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3506956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档