Выкладываю функцию чтения смс с помощью QTP и AT-комманд напрямую из USB-модема. Может быть кому-то пригодится.
Function getSMS(timeout) getSMS = false Set oComm = CreateObject("MSCOMMLib.MSComm") oComm.CommPort = 7 oComm.Settings = "9600,n,8,1" oComm.PortOpen = True oComm.InputMode = comInputModeText oComm.InputLen = 0 oComm.Output ="AT+CMGF = 1" & vbCrLf oComm.Output = "AT+CNMI=1,2,0,0,0" & vbCrLf wait 0,500 For i = 0 to timeout out = oComm.Input If полученная смс содержит "CMT" Then getSMS = out Exit for End If wait 1 i = i+1 Next oComm.PortOpen = False set oComm = nothing End Function
Этот код можно по желанию разбить на отдельные функции и сделать класс для работы с COM-портом. Также можно доделать проверку подключения модема.
Извиняюсь за возможные ошибки и форматирование, т.к. писал на коленке.