我在youtube上关注如何创建一个简单的Skype机器人的教程。它是用VB编写的,凭借我有限的知识,我尽力在C#中重新创建它 我偶然发现了"处理"我只能假设它与C#中的eventhandler有关。
这是我到目前为止所获得的代码,但是当我从另一个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#中实现它的方法是将void添加到公共Form1()中的事件处理程序中,您可以在我的代码中看到它。
提前致谢!
答案 0 :(得分:0)
我使用COM Skype机器人已经有一段时间了,但你的代码似乎还不错。
尽管如此,我建议你转向机器人的现代方法。请查看新的Microsoft Bot Framework
答案 1 :(得分:0)
较新的Skype版本不支持Skype4Com的聊天功能。它们在2013-2014之间的某个地方被弃用。
来自Skype的博文Feature evolution and support for the Skype Desktop API:
我很高兴地分享我们将扩展对两个最广泛使用的功能的支持 - 呼叫记录和与硬件设备的兼容性 - 直到我们确定备选方案或退出当前解决方案。 虽然通过第三方应用程序聊天,但会停止按以前的方式工作。