Отправка SMS с модема: исправить код - VB

Узнай цену своей работы

Формулировка задачи:

Пишу на VB6 программу SMS-оповещений о различных событиях на сервере. Лог программы:
Листинг программы
  1. Чтение файла sms.cfg
  2. Чтение файла tasks.cfg
  3. Открываем порт COM4
  4. Успешно
  5. >> AT
  6. <<
  7. OK
  8. >> AT+CLIP=1
  9. <<
  10. OK
  11. >> AT+CMGF=1
  12. <<
  13. OK
  14. >> AT+CMGS="+79166366660" <<
  15. ERROR
  16. >> THIS IS A TEST MESSAGE
Выдаёт

ERROR

на

AT+CMGS="номер"

почему такое может быть? Через HyperTerminal тоже пробовал вручную вбивать - ошибка. Модем - Alcatel one touch x090s Код может немного кривоват, но вроде ошибок нет
Листинг программы
  1. Private Sub Command1_Click()
  2. Dim z As String
  3. z = SendCmd("AT" & vbCrLf)
  4. z = SendCmd("AT+CLIP=1" & vbCrLf)
  5. z = SendCmd("AT+CMGF=1" & vbCrLf)
  6. z = SendCmd("AT+CMGS=" & Chr(34) & "+79166366660" & Chr(34) & vbCrLf)
  7. z = SendCmd("THIS IS A TEST MESSAGE" & vbCrLf & Chr(26))
  8. End Sub
  9. Private Sub ModemTimer_Timer()
  10. If Not Modem.PortOpen Then
  11. On Error Resume Next
  12. Modem.PortOpen = True
  13. Log.Text = Log.Text & "ÎòêðûâГ*ГҐГ¬ ïîðò COM" & Trim(Str(Modem.CommPort)) & vbCrLf
  14. If Modem.PortOpen Then
  15. Log.Text = Log.Text & "ÓñïåøГ*Г®" & vbCrLf
  16. ModemState = STATE_ON
  17. Else
  18. Log.Text = Log.Text & "ГЋГёГЁГЎГЄГ* îòêðûòèÿ" & vbCrLf
  19. ModemState = STATE_OFF
  20. End If
  21. End If
  22. End Sub
  23. Private Function SendCmd(c As String) As String
  24. LastCmd.Text = ""
  25. Dim ModemOut As String
  26. Dim ModemIn As String
  27. Dim Counter As Long
  28. Counter = 0
  29. If Modem.PortOpen Then
  30. ModemState = STATE_BUSY
  31. ModemOut = c
  32. Modem.Output = ModemOut
  33. Log.Text = Log.Text & ">> " & ModemOut
  34. End If
  35. If Modem.PortOpen Then
  36. ModemIn = Modem.Input
  37. ModemState = STATE_BUSY
  38. Else
  39. ModemState = STATE_OFF
  40. End If
  41. Do
  42. Counter = Counter + 1
  43. Sleep 10
  44. If Len(ModemIn) > 0 Then
  45. Log.Text = Log.Text & "<< " & ModemIn
  46. LastCmd.Text = ModemIn
  47. End If
  48. Loop Until Len(ModemIn) > 0 Or Counter >= 500
  49. If Trim(ModemIn) = "" Then ModemIn = ""
  50. ModemState = STATE_ON
  51. SendCmd = ModemIn
  52. End Function

Решение задачи: «Отправка SMS с модема: исправить код»

textual
Листинг программы
  1. 'Îáúÿâëÿåì API ГґГіГ*êöèè
  2. 'Äëÿ îòêðûòèÿ ñîåäèГ*ГҐГ*ГЁГї ГЁ ïîëó÷åГ*ГЁГї ГҐГЈГ® äåñêðèïòîðГ*
  3. Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
  4. 'Äëÿ ГіГЎГЁГўГ*Г*ГЁГї äåñêðèïòîðГ*
  5. Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
  6. 'Äëÿ îáðГ*Г№ГҐГ*ГЁГї ГЄ URL
  7. Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
  8. Private Sub Command1_Click()
  9. Dim a As Long, b As Variant, Prefix As String, Message As String
  10. 'ñîçäГ*ГҐГ¬ ñîåäèГ*ГҐГ*ГЁГҐ ГЁ ïîëó÷Г*ГҐГ¬ ГҐГЈГ® äåñêðèïòîð
  11. a = InternetOpen("Microsoft Internet Explorer 5.0", 0, vbNullString, vbNullString, 0)
  12. 'îáðГ*Г№Г*åìñÿ ГЄ ñöåГ*Г*ðèþ Г± Г§Г*Г¤Г*Г*Г*ûìè ГЇГ*Г°Г*ìåòðГ*ìè
  13. b = InternetOpenUrl(a, "http://www.mts.ru:5051/cgi-bin/cgi.exe?function=sms_send&MMObjectType=0&MMObjectID=&To=" & Prefix & txtNumber & "&Msg=" & Message & "&Hour=23&Min=59&Day=31&Mon=12&Year=2005&Lang=2", vbNullString, 0, 0, 0)
  14. 'Г§Г*êðûâГ*ГҐГ¬ ñîåäèГ*ГҐГ*ГЁГҐ
  15. InternetCloseHandle a
  16. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут