2017-02-10 15 views
0

我在YouTube上关注如何创建一个简单的Skype机器人的教程。这是写在VB和我有限的知识,我尽我所能重新创建它在C# 我偶然发现了“句柄”,我只能假设是有关的事件处理程序在C#Skype机器人(从VB翻译)不工作

这是我得到的代码到目前为止,但是当我从另一个Skype帐户发送自己的消息时,它不会响应。我已经确认接受允许第三方软件的Skype上的小弹出窗口。

public partial class Form1 : Form 
{ 
    Skype oSkype = new Skype(); 
    string trigger = "!"; 

    public Form1() 
    { 
     InitializeComponent(); 
     oSkype.Attach(7, false); 
     oSkype.MessageStatus += new _ISkypeEvents_MessageStatusEventHandler(oSkype_MessageStatus); 
    } 


    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

    private void oSkype_MessageStatus(ChatMessage pMessage, TChatMessageStatus Status) 
    { 
     if (Status == TChatMessageStatus.cmsReceived || Status == TChatMessageStatus.cmsSent) 
     { 
      string msg = pMessage.Body; 
      Chat c = pMessage.Chat; 

      if (msg.StartsWith(trigger)) 
      { 
       listBox1.Items.Add(DateTime.Now.ToLongTimeString() + ": " + pMessage.Sender.Handle + " sent you a message"); 
       msg = msg.Remove(0, 1).ToLower(); 


       if (msg == "test") 
       { 
        c.SendMessage("Test"); 
       } 
       else 
       { 
        c.SendMessage("Unrecognizable command."); 
       } 
      } 
     } 
    } 
} 

从我下面有这个,而不是本教程的代码:

oSkype_MessageStatus(pMessage as ChatMessage, Status as TChatMessageStatus) Handles oSkype.MessageStatus 

最接近的是什么,我可以进来C#来实现,这是在虚空添加到事件处理程序中的公共Form1中(),你可以在我的代码中看到。

提前致谢!

+0

看起来没问题。该问题不在您发布的代码中。 – CodingYoshi

回答

0

新版Skype版本不支持Skype4Com的聊天功能。它们在2013-2014年之间的某个地方被弃用。

从Skype的博客文章Feature evolution and support for the Skype Desktop API

我很高兴与大家分享,我们将扩大支持两个最常用的功能 - 通话记录和兼容的硬件设备 - 直到我们确定替代选项或退休当前的解决方案。 虽然通过第三方应用程序聊天,但会停止按照以前的通信方式工作。

0

我已经使用COM Skype机器人已经有一段时间了,但你的代码似乎没有问题。

不过,我建议你在机器人上采用现代方法。请查看新的Microsoft Bot Framework