2016-01-11 3 views
0

Я пытаюсь захватить список всех моих друзей Skype, которые находятся в сети, и поместить их в мой listbox по имени lst1. Я также пытаюсь заставить свой инструмент отвечать на некоторые команды, например, если кто-то посылает мне !news, он сообщает им текст, который я установил в коде.skype4comlib Создать список друзей

Это то, что я пробовал до сих пор, я просто играю с кодом, чтобы узнать, как использовать skype4comlib.

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using MetroFramework; 
using MetroFramework.Forms; 
using MetroFramework.Components; 
using SKYPE4COMLib; 
using System.Threading; 

namespace betaskypetool 
{ 
    public partial class Form1 : MetroForm 
    { 
     #region Definitions 
     Skype Merk = new Skype(); 
     private int count = 1; 
     #endregion 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

     } 

     private void metroButton1_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       this.Merk.Attach(5, true); 
       MessageBox.Show("You are now connected enjoy!", "Tutorial Skype Tool!"); 

      } 
      catch (Exception) 
      { 
       MessageBox.Show("Failed To Connect?\n Be Sure Skype Is Open!", "Tutorial Skype Tool!"); 
      } 
     } 

     private void metroButton2_Click(object sender, EventArgs e) 
     { 
      this.Merk.CurrentUserStatus = TUserStatus.cusOnline; 
     } 

     private void metroButton3_Click(object sender, EventArgs e) 
     { 
      this.Merk.CurrentUserStatus = TUserStatus.cusDoNotDisturb; 
     } 

     private void metroButton4_Click(object sender, EventArgs e) 
     { 
      this.Merk.CurrentUserStatus = TUserStatus.cusAway; 
     } 

     private void metroButton5_Click(object sender, EventArgs e) 
     { 
      this.Merk.CurrentUserStatus = TUserStatus.cusInvisible; 
     } 

     private void metroButton6_Click(object sender, EventArgs e) 
     { 
      this.Merk.CurrentUserStatus = TUserStatus.cusOffline; 
     } 

     private void checkBox1_CheckedChanged(object sender, EventArgs e) 
     { 
      if(checkBox1.Checked == true) 
      { 
       timer1.Start(); 
      } 
      else 
      { 
       timer1.Stop(); 
      } 
     } 

     private void timer1_Tick(object sender, EventArgs e) 
     { 
      this.Merk.CurrentUserStatus = TUserStatus.cusOnline; 
      Thread.Sleep(20); 
      this.Merk.CurrentUserStatus = TUserStatus.cusAway; 
      Thread.Sleep(20); 
      this.Merk.CurrentUserStatus = TUserStatus.cusDoNotDisturb; 
      Thread.Sleep(20); 
      this.Merk.CurrentUserStatus = TUserStatus.cusInvisible; 
      Thread.Sleep(20); 
     } 

     private void metroButton7_Click(object sender, EventArgs e) 
     { 
      foreach(User spamall in Merk.Friends) 
      { 
       Merk.SendMessage(spamall.Handle, "Haiiiii" + spamall.FullName + ",\n" + richTextBox1.Text + "\n\n(cash) Sent From Merk's Tutorial Tool! (cash)"); 
      } 
     } 

     private void richTextBox1_TextChanged(object sender, EventArgs e) 
     { 

     } 
    } 
} 

Я надеюсь, что вы понимаете мой вопрос и может помочь мне с тем, что мне нужно сделать, чтобы добавить эти 2 функции в моем проекте

+1

Я только что предложил изменить для очистки грамматики для вас, но я бы предположил, что это действительно два вопроса, один из которых касается составления списка ваших онлайн-сообщений друзей и тех, кто делает автоматический ответ. Вы можете рассмотреть возможность отделить автоматическую часть ответа в отдельный вопрос –

ответ

1

Вы можете получить коллекцию своих друзей онлайн, как это:

var onlineFriends = Merk.Friends.Cast<User>().Where(u => u.OnlineStatus == TOnlineStatus.olsOnline); 

После этого их легко разместить в ListBox.

WPF Пример:

foreach (var friend in onlineFriends) 
{ 
    MyListBox.Items.Add(friend.FullName); 
} 

То есть, я не уверен, если это стоит тратить много времени на изучение, потому что согласно этому сообщению в блоге, Microsoft действительно не поддерживает skype4comlib больше.

https://support.skype.com/en/faq/FA12384/how-does-my-3rd-party-application-work-with-skype-and-how-will-changes-to-skype-impact-my-3rd-party-application

Как сообщается в этом блоге, благодаря усовершенствованию технологии, которые мы делаем с опытом Skype, некоторые особенности API перестанет работать с Skype для рабочего стола. Например, передача сообщений чата с использованием API перестанет работать.

Например, я больше не могу отправить сообщение, используя библиотеку. PS: Я использую Skype 7.17.0.106