ПОЛУЧИТЕ ВСЕ Skype друзей, используя Skype API с C # - PullRequest
4 голосов
/ 24 февраля 2011

Есть ли способ получить всех друзей пользователя, используя Skype с C #?Также как я могу стать активным (онлайн друзья).

Ответы [ 2 ]

6 голосов
/ 01 марта 2011

сначала вы должны добавить ссылку на SKYPE4COMLib на вкладке COM-ссылки вашего проекта, затем убедитесь, что ваше приложение будет построено, так как x86 наконец попытается использовать этот фрагмент кода:

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 голос
/ 23 ноября 2012

У меня были некоторые проблемы с кодом @Ginkas. Я нашел ниже код здесь и работает как шарм. Также, если я правильно помню, я создаю экземпляр 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);
    }
...