2012-04-13 59 views
0

我已經創建了一個代碼來獲取所有聯繫人,但現在我想要獲取所有聊天記錄組。如果您從未使用過Skype4COM API,請不要再閱讀本主題。Skype4COM獲取所有最近的聊天記錄

用於收集所有的針數

try 
    { 
     for (int i = 0; i < skype.HardwiredGroups.Count; i++) 
      if (skype.HardwiredGroups[i + 1].Type == TGroupType.grpAllFriends) 
      { 
       for (int j = skype.HardwiredGroups[i + 1].Users.Count; j > 0; j--) 
        listBox1.Items.Add(skype.HardwiredGroups[i + 1].Users[j].Handle); 
       button17.Enabled = false; 
       break; 
      } 
    } 
    catch (Exception eoi){} 

任何想法,建立組的列表?

回答

1
private List<string> getChats(Skype skype) 
{ 
    List<string> r = new List<string>(); 

    foreach (Chat c in skype.Chats) 
     try { r.Add(c.Name); } catch (Exception) {} 

    return r; 
} 

我們必須嘗試{} catch {},因爲Skype會產生無效聊天,如果我們嘗試訪問它們,會引發COMException。

的列表框:

foreach (Chat c in skype.Chats) { 
    try 
    { 
     listBox1.Items.Add(c.Name); 
    } catch (Exception) {} 
} 

然後,你可以在列表框中使用skype.get_Chat(value)在每個項目上。

+0

嗯非常好,但現在我怎麼可以將它們全部添加到列表框中,作爲我的其他代碼來獲取聯繫人。 – 2012-04-15 17:33:39

+0

編輯在最後添加示例。但僅供參考,這將是唯一的聊天名稱,而不是您在UI中看到的名稱。如果你想要UI名稱,你必須使用'skype.Chats [0] .FriendlyName'(但你不能使用具有'FriendlyName'值的'skype.get_Chat()'):) – Josh 2012-04-15 17:42:16

+0

嗯@Josh這是唯一的問題是我需要它來建立友好名稱列表,PS:感謝您的幫助。這裏沒有多少人知道SKYPE4COM很多或什麼,因此很難找到答案。 – 2012-04-15 18:09:32