Вызов офисного коммуникатора через Silverlight из браузера - PullRequest
2 голосов
/ 18 августа 2010

Мне нужно вызвать офисный коммуникатор, чтобы создать окно чата и телефонный звонок непосредственно из Silverlight при запуске браузера. При работе в браузере я делаю это, и это работает довольно хорошо:

System.Windows.Browser.HtmlPage.Window.Eval(String.Format("window.open(\"sip:{0}\", target=\"_self\");", sip));

Когда у меня заканчивается браузер, я должен вызывать Communicator.UIAutomation через динамику, но, честно говоря, я не знаю, что делать дальше.

dynamic communicator = AutomationFactory.CreateObject("Communicator.UIAutomation");

Кто-нибудь есть какие-либо предложения о том, как сделать эту работу? Поиск дал ноль результатов.

Ответы [ 2 ]

0 голосов
/ 18 августа 2010

SDK должен быть предварительно установлен на компьютерах пользователей.Нет простого способа развернуть его в приложении Silvelright OOB.

Вам понадобится SDK .

Более подробную информацию можно найти здесь: C: \ Program Files (x86) \ Microsoft Office Communicator \ SDK \ OCSDK.chm В основном это относится к C #, но большинство из них можно легко перенести на Com Automation.В качестве примера посмотрите следующий код, чтобы начать разговор

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 #).Если вам это нужно, я бы предложил открыть сборку CommunicatorAPI.dll в Reflector.

0 голосов
/ 18 августа 2010

Пара мыслей:

Вы пытались сделать объект автоматического коммуникатора var, затем установить точку останова и копаться в получающемся гидратированном объекте?Вы можете найти некоторые методы или свойства объекта, которые вы можете использовать, чтобы все произошло.

Здесь есть блог , в котором описан пакет Office Communicator SDK и есть несколько примеров проектов.Я думаю вы могли бы включить сборки SDK в свое приложение OOB и автоматизировать Communicator с помощью предоставленного Microsoft SDK.

...