代码之家  ›  专栏  ›  技术社区  ›  amelvin

我可以在聊天模式下打开office communicator(Lync 2010)吗?

  •  1
  • amelvin  · 技术社区  · 15 年前

    在具有正确设置的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 回复  |  直到 15 年前
        1
  •  3
  •   Paul Nearney    15 年前

    根据您的需求,最简单的方法是使用现有的 NameCtrl persona菜单-这是将鼠标悬停在用户状态图标上时在SharePoint(以及其他基于web的应用程序,如Dynamics CRM)中显示的弹出菜单。此菜单允许您呼叫用户、开始新对话等。您需要在运行的计算机上安装Office才能使其工作。

    例如,在运行Office2007/2010的任何客户机上尝试此操作,即将鼠标悬停在“YourContact”文本上,即可查看“persona”菜单:

    <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
  •  0
  •   Paul Nearney    15 年前

    如果NameCtrl答案不符合您的要求,您可以尝试 Lync SDK

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

    推荐文章