2010-10-14 73 views
1

在具有正確設置的Win/IE環境中,您可以啓動一個.exe文件。我可以在聊天模式下打開辦公室通信器(Lync 2010)嗎?

以下代碼可以正常運行以啓動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?

預先感謝您。

回答

3

根據您的要求,最簡單的方法是使用現有的NameCtrl角色菜單 - 這是彈出式菜單,當您將鼠標懸停在用戶存在上時,它將顯示在SharePoint(以及其他基於網絡的應用程序,如Dynamics CRM)中圖標。此菜單允許您呼叫用戶,開始新的對話等。您需要在運行的計算機上安裝Office以使其運行。

作爲示例,請在任何運行Office 2007/2010和IE的客戶端計算機上嘗試此操作。將鼠標懸停在「您的聯繫人」文本看人物菜單:

<script> 

var sipUri = "[email protected]"; 

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

這似乎是一個非常合理的解決方案,不幸的是我所做的工作只有幾天,項目已經開始,我的參與已經結束! – amelvin 2010-11-10 12:47:29

0

如果NameCtrl答案不符合你的要求,你可以嘗試Lync SDK。創建一個使用自動化API與給定用戶打開對話的.NET DLL是相當簡單的。

然後,您需要通過COM公開這些信息,以確保它可以從JavaScript中調用。再次,使用.NET的COM Interop功能非常簡單。

+0

我使用的是Lync SDK,儘管我的參與已經結束,如果有一個使用Automation API與Lync或OCS的示例,我會感興趣。我發現Lync文檔相互矛盾,並且在線示例從未重複過去預構建控件的最明顯用途。而且我有點被推動了! – amelvin 2010-11-10 12:54:29

相關問題