Могу ли я открыть Office Communicator (Lync 2010) в режиме чата?
-
30-09-2019 - |
Вопрос
В среде 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 Chat к указанному контакту?
objShell.ShellExecute("communicator.exe", "", "C:\Program Files (x86)\Microsoft Lync", "open", 10);
Или если есть другой способ открыть Lync в режиме чата через какой-то ярлык?
Заранее спасибо.
Решение
В зависимости от ваших требований, самый простой будет использовать существующие Namectrl. Persona Menu - это всплывающее меню, которое отображается в SharePoint (и других веб-приложений, таких как Dynamics CRM), когда парят на значок присутствия пользователей. Это меню позволяет вам позвонить в пользователю, начать новый разговор и т. Д. Вам нужен офис, установленный на машине, на котором вы работаете, чтобы он работал.
В качестве примера попробуйте это на любом клиентском компьютере, работающем в офисе 2007/2010 и т. Е. Наведите курсор на текст «Ваш контакт», чтобы увидеть меню «Персона:
<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>
Другие советы
Если ответ NamectRL не соответствует вашим требованиям, вы можете попробовать ЛИНЦ СДК. Отказ Было бы довольно просто создать .NET DLL, которая использует API автоматизации, чтобы открыть разговор с данным пользователем.
Затем вам нужно будет разоблачить это через COM, чтобы он мог быть вызван от JavaScript. Опять же, довольно простым, используя функции COM Interop .NET .NET.