0

わかりましたので、多くのことを行う Skype ツール ボックス プログラムを作成していますが、Aui に問題があります。

プログラムのこの部分は、人とのチャットで送信されたコマンドを確認し、テキストを出力することを目的としています。たとえば、誰かとのチャットで !fatty と言うと、"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 詳細情報が必要な場合、またはその開発に参加したい場合は、お問い合わせください。

4

1 に答える 1

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

これは、できることの基本的な概要であり、そこから簡単に拡張できます。これで問題が解決することを願っています。

于 2013-08-08T06:20:11.597 に答える