2011-02-23 115 views

回答

6

首先你必须在从COM引用标签在你的项目中添加一个参考SKYPE4COMLib,然后确保你的apllication将被建造为86终于尝试使用此代码段:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using SKYPE4COMLib; 

namespace Example 
{ 
    class SkypeExample 
    { 
     static void Main(string[] args) 
     { 
      SkypeClass _skype = new SkypeClass(); 
      _skype.Attach(7, false); 

      IEnumerable<SKYPE4COMLib.User> users = _skype.Friends.OfType<SKYPE4COMLib.User>(); 

      users 
       .Where(u => u.OnlineStatus == TOnlineStatus.olsOnline) 
       .OrderBy(u => u.FullName) 
       .ToList() 
       .ForEach(u => Console.WriteLine("'{0}' is an online friend.", u.FullName)); 

      Console.ReadKey(); 
     } 
    } 
} 

希望这有助于。

1

我在@Ginkas代码中遇到了一些问题。我发现下面的代码here并且像魅力一样工作。此外,如果我没记错的话,我实例化Skype()而不是SkypeClass()。如果你玩耍,你应该只有你的朋友状态活跃。希望能帮助到你。

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--) 
        Console.WriteLine(skype.HardwiredGroups[i + 1].Users[j].Handle); 

       break; 
      } 
    } 
    catch (Exception e) 
    { 
     Console.WriteLine("Display Friends Group Error- Exception Source: " + e.Source + " - Exception Message: " + e.Message); 
    }