Можно ли открыть офисный коммуникатор (Lync 2010) в режиме чата? - PullRequest
1 голос
/ 14 октября 2010

В среде Win / IE с правильными настройками вы можете запустить файл .exe.

Следующий код прекрасно работает для запуска Microsoft Lync (новое имя для Office Communicator).

...
    <a href="#" onclick="fnShellExecute();">start chat</a>
</body>
</html>
<script type="text/javascript">
    function fnShellExecute()
    {
        var objShell = new ActiveXObject("shell.Application");
        objShell.ShellExecute("communicator.exe", "", "C:\Program Files (x86)\Microsoft Lync", "open", 10);
    }
</script>

Но я не могу определить параметры (или, если это возможно), чтобы создать ярлык, который бы открывал клиент Lync с окном чата для другого доступного открытого пользователя.По сути, я знаю, кто доступен, и хочу иметь возможность создать (в HTML) простую ссылку, которая открыла бы окно чата с этим человеком (вне WPF или Silverlight или любого из встроенных элементов управления).

Кто-нибудь знает, как настроить эту строку в JavaScript, чтобы открыть окно чата Lync для указанного контакта?

objShell.ShellExecute("communicator.exe", "", "C:\Program Files (x86)\Microsoft Lync", "open", 10);

Или, если есть другой способ открыть Lyncв режиме чата с помощью какого-либо ярлыка?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 25 октября 2010

В зависимости от ваших требований проще всего будет использовать существующее NameCtrl персонализированное меню - это всплывающее меню, которое отображается в SharePoint (и других веб-приложениях, таких как Dynamics CRM), когда наведите курсор на значок присутствия пользователей. Это меню позволяет вам позвонить пользователю, начать новый разговор и т. Д. Чтобы он работал, вам нужно установить Office на компьютере, на котором вы работаете.

В качестве примера попробуйте это на любом клиентском компьютере с Office 2007/2010 и IE. Наведите курсор на текст «Ваш контакт», чтобы увидеть меню персоны:

<script>

var sipUri = "your.contact@your.domain.com";

var nameCtrl = new ActiveXObject('Name.NameCtrl.1');
if (nameCtrl.PresenceEnabled)
{
  nameCtrl.OnStatusChange = onStatusChange;
  nameCtrl.GetStatus(sipUri, "1");
}


function onStatusChange(name, status, id)
{
  // This function is fired when the contacts presence status changes.
  // In a real world solution, you would want to update an image to reflect the users presence
  alert(name + ", " + status + ", " + id);
}

function ShowOOUI()
{
  nameCtrl.ShowOOUI(sipUri, 0, 15, 15);
}

function HideOOUI()
{
  nameCtrl.HideOOUI();
}

</script>

<span onmouseover="ShowOOUI()" onmouseout="HideOOUI()" style="border-style:solid">Your Contact</span>
0 голосов
/ 25 октября 2010

Если ответ NameCtrl не соответствует вашим требованиям, вы можете попробовать Lync SDK .Было бы довольно просто создать .NET DLL, которая использует API автоматизации для открытия диалога с данным пользователем.

Затем вам нужно будет выставить это через COM, чтобы убедиться, что его можно вызывать из JavaScript.Опять же, довольно просто использовать функции COM взаимодействия .NET.

...