2013-07-12 4 views
0

ОК, поэтому я делаю программу с программным обеспечением Skype, которая многое делает, но у меня возникают проблемы с Aui.C# Приложение Skype отправляет текст в текущий чат на триггере

Эта часть программы предназначена для просмотра команд, которые отправляются в чате с человеком и печатают текст. Например, если вы говорите! Жирный в чате с кем-то, он напишет «yo fat boy».

Я обнаружил этот код онлайн:

using System; 
using System.Windows.Forms; 
using SKYPE4COMLib; // Our COM library 

namespace SkypeBing 
{ 
    public partial class Form1 : Form 
    { 
     private Skype skype; 
     private const string trigger = "!"; // Say !help 
     private const string nick = "Skype Admin"; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      skype = new Skype(); 
      // Use skype protocol version 7 
      skype.Attach(7, false); 
      // Listen 
      skype.MessageStatus += 
       new _ISkypeEvents_MessageStatusEventHandler(skype_MessageStatus); 
     } 
     private void skype_MessageStatus(ChatMessage msg, 
        TChatMessageStatus status) 
     { 
      // Proceed only if the incoming message is a trigger 
      if (msg.Body.IndexOf(trigger) == 0) 
      { 
       // Remove trigger string and make lower case 
       string command = msg.Body.Remove(0, trigger.Length).ToLower(); 

       // Send processed message back to skype chat window 
       skype.SendMessage(msg.Sender.Handle, nick + 
         " Says: " + ProcessCommand(command)); 
      } 
     } 

     private string ProcessCommand(string str) 
     { 
      string result; 
      switch (str) 
      { 
       case "hello": 
        result = "Hello!"; 
        break; 
       case "help": 
        result = "Sorry no help available"; 
        break; 
       case "date": 
        result = "Current Date is: " + 
          DateTime.Now.ToLongDateString(); 
        break; 
       case "time": 
        result = "Current Time is: " + 
          DateTime.Now.ToLongTimeString(); 
        break; 
       case "who": 
        result = "It is Praveen, aka NinethSense " + 
          "who wrote this tutorial"; 
        break; 
       default: 
        result = "Sorry, I do not recognize your command"; 
        break; 
      } 

      return result; 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 

     } 
    } 
} 

Но это не работает, потому что он должен быть направлен на пользователя. Я довольно новичок в этом Aui. Если у кого-нибудь есть идеи о методах, которые я мог бы использовать, чтобы правильно назвать это событие, потому что в Интернете не так много поддержки, поэтому я подумал, что попрошу вас супер людей. : D Если вам нужна дополнительная информация или вы хотите быть частью ее развития, просто спросите.

ответ

1
private void skype_MessageStatus(ChatMessage msg, TChatMessageStatus status) 
{ 
     if (msg.Body.Contains("faty")) 
     { 
      skype.SendMessage(msg.Sender.Handle,"Go away fatty!"); 
     } 
    } 

skype.MessageStatus += new _ISkypeEvents_MessageStatusEventHandler(skype_MessageStatus); 

Это основной план того, что вы можете сделать, его легко расширить оттуда. Надеюсь, это прояснит ситуацию.