2015-02-11 5 views
3


Я использую .NET 4.0 на 64-битной машине Win7.
Я пытаюсь получить имя группы, когда «фокусируюсь» на групповом чате в Skype. Когда я фокусируюсь на групповом чате, я получаю в ContactFocused (string Username) callback - пустая строка для Username. Обратный вызов выполняется, но с пустым параметром. Код я написал:Как получить сфокусированное имя группы с помощью API Skype4COM в C#

m_skype = new Skype(); 
.... 
m_skype.ContactsFocused += Skype_ContactsFocused; 
.... 
private void Skype_ContactsFocused(string Username) 
{ 
     //Console.WriteLine("Skype_ContactsFocused is {0}", Username); 
} 

При фокусировке одного контакта этот код работает отлично, я получаю уведомление в Skype_ContactFocused обратного вызова с правильным именем в качестве параметра, а на группе чат это имя пустым. Мой вопрос: есть ли способ получить «сфокусированное» название группы?
Благодаря

ответ

1

Я знаю, что это очень поздно ответ, но вот как получить текущее сфокусированное имя группы: вместо чтения из пользователя, вы должны прочитать из m_skype.ActiveChats[1].Topic. Вы также можете прочитать m_skype.ActiveChats[1].FriendlyName, если вы предпочитаете видеть имя вашего друга в сравнении с их именами входа в систему. Вот как это прерывание должно выглядеть следующим образом:

private static void Skype_ContactsFocused(string Username) 
{ 
    //Console.WriteLine("Skype_ContactsFocused is {0}", Username); 
    Console.WriteLine("Skype_ContatsFocused is " + ((m_skype.ActiveChats[1].Topic != "") ? m_skype.ActiveChats[1].Topic : m_skype.ActiveChats[1].FriendlyName)); 
} 

Пожалуйста, обратите внимание, что попытка сосредоточиться чат где имя по умолчанию (список имен является темой), программа не может зарегистрировать его правильно. Это также происходит, если есть чаты с тем же именем темы.

Я надеюсь, что это по-прежнему полезно для вас, хотя прошло уже больше года :-)