Public Declare Function SmsOpen Lib "SMS" (ByVal ptsMessageProtocol As String, ByVal dwMessageModes As Long, ByRef psmshHandle As Long, ByRef phMessageAvailableEvent As Long) As Long Public Declare Function SmsSendMessage Lib "SMS" (ByVal smshHandle As Long, ByVal psmsaSMSCAddress As Long, ByVal psmsaDestinationAddress As String, ByVal pstValidityPeriod As Long, ByVal pbData As String, ByVal dwDataSize As Long, ByVal pbProviderSpecificData As String, ByVal dwProviderSpecificDataSize As Long, ByVal smsdeDataEncoding As Long, ByVal dwOptions As Long, ByRef psmsmidMessageID As Long) As Long Public Declare Function SmsClose Lib "SMS" (ByVal smshHandle As Long) As Long |
Public Const SMS_MSGTYPE_TEXT = "Microsoft Text SMS Protocol" Public Const SMS_MODE_SEND = 2 '用发送模式打开 Public Const SMSDE_GSM = 1 '使用标准GSM encoding Public Const SMSAT_INTERNATIONAL = 1 ' 国际号码 format Public Const PS_MESSAGE_OPTION_NONE = 0 ' 没有消息选项 Public Const PS_MESSAGE_CLASS0 = 0 ' 立即发送 Public Const PSRO_NONE = 0 '没有更替 Public Const SMS_OPTION_DELIVERY_NONE = 0 ' 没有发送选项 |
Public Sub SendSMS(ByVal Number As String, ByVal Message As String)
Dim SMSHandle As Long
Dim SMSEvent As Long
Dim SMSAddress As String
Dim SMSProvider As String
'打开SMS消息组件
Call SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, SMSHandle, SMSEvent)
'设置地址结构体
SMSAddress = LongToBytes(SMSAT_INTERNATIONAL) & Number
'设置提供者结构体
SMSProvider = LongToBytes(PS_MESSAGE_OPTION_NONE) & _
LongToBytes(PS_MESSAGE_CLASS0) & _
LongToBytes(PSRO_NONE)
'发送消息
If 0 = SmsSendMessage(SMSHandle, 0, SMSAddress, 0, Message, _
LenB(Message), SMSProvider, 12, SMSDE_GSM, _
SMS_OPTION_DELIVERY_NONE, 0) Then
MsgBox "Message sent!", vbInformation, App.Title
Else
MsgBox "Could not send message!", vbCritical, App.Title
End If
'关闭SMS消息组件
Call SmsClose(SMSHandle)
End Sub |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10294527/viewspace-125448/ ,如需转载,请注明出处,否则将追究法律责任。