title: How do I send a message in a group chat in Skype with Skype4COM?
body: <p>I've been trying to make a "Skype Bot" in C#. So far I've successfully been able to get it to work in one on one chats. I can't get it to work in group chats. Here's my source:</p>
  
  <pre><code>using System;
  using System.Windows.Forms;
  using SKYPE4COMLib;
  
  namespace SkypeBot
  {
      public partial class Form1 : Form
      {
          private Skype skype;
          private const string trigger = "!"; // Say !help
          private const string nick = "Bot";
  
          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)
          {
              if (TChatMessageStatus.cmsRead == status)
              {
                  return;
              }
  
              if (msg.Body.IndexOf(trigger) == 0 &amp;&amp; TChatMessageStatus.cmsReceived == status)
              {
                  // 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));
                  IChat ichat = skype.get_Chat(msg.Chat.Name);
                  ichat.SendMessage(msg.Sender.Handle, nick + " Says: " + ProcessCommand(command));
              }
          }
  
          private string ProcessCommand(string str)
          {
              string result;
              switch (str)
              {
                  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 = "I am Bot, a magical Skype robot!";
                      break;
                  case "moon":
                      result = "(moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) (moon) ";
                      break;
                  default:
                      result = "Sorry, I do not recognize your command";
                      break;
              }
  
              return result;
          }
      }
  }
  </code></pre>
  
  <p>Where it sends the processed message I get the error "No overload for method 'SendMessage' takes 2 arguments".</p>
  
  <p>However when I use:</p>
  
  <pre><code>skype.SendMessage(msg.Sender.Handle, nick + " Says: " + 
        ProcessCommand(command));
  </code></pre>
  
  <p>It works perfectly, but not in group chats. Do you have any suggestions?</p>