Как сделать отправку смс?
Без регистрации - никак.
Есть куча сервисов, которые отправляют смс через своё API.
Гугл в помощь

upd:
Если ты думаешь, что тебе тут дадут код, который будет отправлять смс бесплатно, - тебе не сюда!
А вот на С# можно)))))
using System.IO.Ports;
static SerialPort port;
port = new SerialPort();
private static void OpenPort()
        {
            port.BaudRate =2400; // еще варианты 4800, 9600, 28800 или 56000
            port.DataBits = 7; // еще варианты 8, 9

            port.StopBits = StopBits.One; // еще варианты StopBits.Two StopBits.None или StopBits.OnePointFive         
            port.Parity = Parity.Odd; // еще варианты Parity.Even Parity.Mark Parity.None или Parity.Space

            port.ReadTimeout = 500; // самый оптимальный промежуток времени
            port.WriteTimeout = 500; // самый оптимальный промежуток времени

            port.Encoding = Encoding.GetEncoding("windows-1251");
            port.PortName = "COM5";

            // незамысловатая конструкция для открытия порта
            if (port.IsOpen) 
                    port.Close(); // он мог быть открыт с другими параметрами
            try
            {
                port.Open();
            }
            catch (Exception e) { }
   }
  port.WriteLine("AT \r\n"); // значит Внимание! для модема 
  System.Threading.Thread.Sleep(500);
  port.Write("AT+CMGF=1 \r\n"); // устанавливается текстовый режим для отправки сообщений
  System.Threading.Thread.Sleep(500);
port.Write("AT+CMGS=\"+375123456789\"" + "\r\n");
System.Threading.Thread.Sleep(500);
port.Write("Hello from modem!" + char.ConvertFromUtf32(26) + "\r\n");
System.Threading.Thread.Sleep(500);
port.Close();
port.DataReceived += SerialPortDataReceived;
}