Skype4COM获取所有最近的聊天记录

问题描述:

我已经创建了一个代码来获取所有联系人,但现在我想要获取所有聊天记录组。如果您从未使用过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){} 

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

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