2012-04-13 15 views
0

Ich habe einen Code erstellt, um alle Kontakte zu bekommen, aber jetzt möchte ich alle Chat-Gruppen bekommen. Bitte lesen Sie dieses Thema nicht mehr, wenn Sie noch nie die Skype4COM API verwendet haben.Skype4COM bekomme alle aktuellen Chat in recents

verwendet, um alle Polzahl

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){} 

Jede Idee zu sammeln, um eine Liste der Gruppen zu bauen?

Antwort

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; 
} 

Wir müssen versuchen, {} catch {}, weil Skype ungültig Chats erzeugt, die eine COMException werfen, wenn wir versuchen, auf sie zuzugreifen.

für ein Listenfeld:

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

Dann können Sie einfach skype.get_Chat(value) im Listenfeld für jedes Element verwenden.

+0

Hmm sehr schön, aber jetzt wie könnte ich es machen sie alle zu einer Listbox Zeile für Zeile hinzufügen, wie mein anderer Code für Kontakte zu bekommen. –

+0

Bearbeitet, um ein Beispiel am Ende hinzuzufügen. Aber nur zum ersten Mal, das ist der eindeutige Chat-Name, nicht der Name, den Sie auf der Benutzeroberfläche sehen. Wenn Sie den UI-Namen haben wollten, müssten Sie 'skype.Chats [0] .FriendlyName' verwenden (aber Sie können' skype.get_Chat() 'nicht mit dem' FriendlyName'-Wert verwenden) :) – Josh

+0

Hmm @Josh das ist das einzige Problem, ich brauche es, um eine Liste von freundlichen Namen aufzubauen, PS: Danke für die Hilfe. Nicht viele hier wissen viel oder nichts über die SKYPE4COM, so dass es schwer ist, Antworten zu finden. –