【问题标题】:Can I open office communicator (Lync 2010) in chat mode?我可以在聊天模式下打开 office communicator (Lync 2010) 吗?
【发布时间】:2023-03-24 19:10:01
【问题描述】:

在具有正确设置的 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?

提前谢谢你。

【问题讨论】:

    标签: shellexecute lync lync-2010 office-communicator


    【解决方案1】:

    根据您的要求,最简单的方法是使用现有的 NameCtrl 角色菜单 - 这是在将鼠标悬停在用户上时显示在 SharePoint(和其他基于 Web 的应用程序,如 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>
    

    【讨论】:

    • 这似乎是一个非常合理的解决方案,不幸的是我所做的工作只有几天,项目已经开始,我的参与已经结束!
    【解决方案2】:

    如果 NameCtrl 答案不符合您的要求,您可以尝试Lync SDK。创建一个使用自动化 API 打开与给定用户的对话的 .NET DLL 将非常简单。

    然后您需要通过 COM 公开它以确保它可以从 JavaScript 调用。同样,使用 .NET 的 COM 互操作功能非常简单。

    【讨论】:

    • 我使用的是 Lync SDK,尽管我的参与已经结束,如果有一个将自动化 API 与 Lync 或 OCS 一起使用的示例,我会很感兴趣。我发现 Lync 文档自相矛盾,在线示例从未超越对预构建控件的最明显用途的重新散列。而且我有点赶时间!
    猜你喜欢
    • 1970-01-01
    • 2012-12-07
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 2014-06-17
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多