Как отправить смс через приложение Windows - PullRequest
5 голосов
/ 28 мая 2009

Я хочу отправить SMS через приложение Windows. Я запустил код, но получил ошибку. Это

AT

OK AT+CMGF=1

OK AT+CSCA="+9460921985"

OK AT+CMGS="+9660775564"

    this is new message

+CMS ERROR: 500

Я использую этот код.

Public Class Form2 
  Dim number As String = "+9660775564"
  ''# Dim message As String = TextBox1.Text 
  Dim serialport As New IO.Ports.SerialPort 

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Try With serialport 
      .PortName = "COM5" ''# "COM24" 
      .BaudRate = "9600" 
      .Parity = IO.Ports.Parity.None 
      .DataBits = 8 
      .StopBits = IO.Ports.StopBits.One
      .Handshake = IO.Ports.Handshake.RequestToSend 
      .DtrEnable = True .RtsEnable = True 
    End With

    serialport.Open()
    ''# checks phone status
    serialport.WriteLine("AT" & vbCrLf)
    ''# Configures message as SMS
    serialport.WriteLine("AT+CMGF=1" & vbCrLf)
    ''# Sets message center number
    ''# serialport.WriteLine("AT+CSCA=""+447785016005""" & vbCrLf)
    serialport.WriteLine("AT+CSCA=""+9460921985""" & vbCrLf)
    ''# Sets destination number
    serialport.WriteLine("AT+CMGS=""" & number & """" & vbCrLf)
    ''# Specifies message and sends Ctrl+z
    serialport.WriteLine(TextBox1.Text & Chr(26))
    ''# Displays buffer containing output messages
    System.Threading.Thread.Sleep(2000) ''# CurrentThread.Sleep(2000)
    MsgBox(serialport.ReadExisting)
    serialport.Close()
    MessageBox.Show("OK")

  Catch ex As Exception
    MessageBox.Show(ex.Message)
  End Try
End Sub

Заранее спасибо за помощь.

Ответы [ 3 ]

2 голосов
/ 28 мая 2009

У меня вообще нет опыта написания SMS, но вы, кажется, вызываете serialPort.WriteLine и добавляете vbCrLf в конце строки.

Во-вторых, вы уверены, что вам нужен vbCrLf - некоторые вещи, которые я видел, просто ссылаются на «возврат каретки» - это будет vbCr.

1 голос
/ 28 мая 2009

Я наткнулся на Microsoft SMS Sender некоторое время назад, и это может вам помочь. Я никогда не удосужился использовать его, хотя ...

0 голосов
/ 28 мая 2009

+ CMS ERROR 500 (обычно) раскрывается как «Неизвестная ошибка». Из документации по AT-модему GSM:


Если отправка не удалась, например, если сообщение слишком длинное, код результата зависит от текущей настройки AT ^ SM20 команда:

Если AT ^ SM20 равен 1 (заводская настройка) любой сбой при отправке сообщение отвечает «ОК». Пользователи должны знать, что, несмотря на ответ «ОК», сообщение будет не отправляется подписчику.

Если AT ^ SM20 равен 0 любой Не отправлено сообщение ответили с "ОШИБКА". • Если отправка не удалась из-за тайм-аут, затем AT ^ SM20 = 1 причина "+ ОШИБКА CMS: Неизвестная ошибка "будет возвращено;
AT ^ SM20 = 0 причин "+ CMS ОШИБКА: таймер истек ", чтобы быть возвращенным.


Возможно, у вас проблемы с тайм-аутом / соединением. Может быть, проверить, что ваш модем / телефон успешно зарегистрирован в службе, т. Е. Проверить ответ на AT + COPS? а AT + CREG? команды.

...