⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functions.bas

📁 一个手机发短信的源码
💻 BAS
字号:
Attribute VB_Name = "functions"
'================================================================
'================================================================
'***                  SMS Messenger v1.0                      ***
'================================================================
'================================================================
'*** For any Questions or Comments concerning this program    ***
'*** Homepage : http://xt.tp//www.sms.com                     ***
'*** Email    : kanthji@rediffmail.com                        ***
'*** Yahoo    : lucky_kanth                                   ***
'================================================================
'================================================================
'*** Mobule Name : functions.bas                              ***
'*** Date & Time : 21st October 2002, 04:30(IST)              ***
'================================================================
'================================================================

Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Public Ssend As Integer
Public Srow As Integer
Public id As Integer
Public tes As String

Public Log As String

Public Function sendsms(SMSC, Phno, SMS)

   Srow = Srow + 1
   SMSmainfrm.SMSgrid.TextMatrix(Srow, 0) = "Sending.."
   SMSmainfrm.SMSgrid.TextMatrix(Srow, 1) = Phno
   SMSmainfrm.SMSgrid.TextMatrix(Srow, 2) = SMS
   If SMSmainfrm.Option1.Value = True Then
      SMSmainfrm.SMSgrid.TextMatrix(Srow, 3) = "NORMAL"
   Else
      If SMSmainfrm.Option2.Value = True Then
         SMSmainfrm.SMSgrid.TextMatrix(Srow, 3) = "FLASH"
      Else
         If SMSmainfrm.Option3.Value = True Then
            SMSmainfrm.SMSgrid.TextMatrix(Srow, 3) = "BLINK"
         End If
      End If
   End If
   SMSmainfrm.SMSgrid.Rows = SMSmainfrm.SMSgrid.Rows + 1

  If SMSmainfrm.DReport.Value = 1 Then DR = "31" Else DR = "11"
  If Len(Phno) < 12 Then FO = "81" Else FO = "91"
  If SMSmainfrm.Option1.Value = True Then
     mf = "00"
  Else
    If SMSmainfrm.Option2.Value = True Then
       mf = "F0"
    Else
      If SMSmainfrm.Option3.Value = True Then
         mf = "08"
      End If
    End If
  End If
  SMSC = revnum(SMSC)
  Phno = revnum(Phno)
  If mf = "08" Then
     SMS = ConvToblinkhex(SMS)
     LS = hex2(Len(SMSmainfrm.Text1.Text) * 2)
  Else
     SMS = ConvToHex(SMS)
     LS = hex2(Len(SMSmainfrm.Text1.Text))
  End If
  mva = hex2(SMSmainfrm.Combo1.ListIndex)
  tep = DR & "00" & hex2(Len(Phno)) & FO & Phno & "00" & mf & mva & LS & SMS
  lnth = (Len(tep)) / 2
  msg = "0791" & SMSC & tep
  If Ssend = 1 Then
     Call sendmsg(lnth, msg)
     SMSmainfrm.SMSgrid.TextMatrix(Srow, 0) = "SENT"
  Else
     Call savemsg(lnth, msg)
     SMSmainfrm.SMSgrid.TextMatrix(Srow, 0) = "SAVED"
  End If
  'SMSmainfrm.Text1.Text = SMSmainfrm.SMS.Input

End Function
Public Function sendmsg(lnth, msg)
  SMSmainfrm.SMS.Output = "AT" & Chr$(13) & Chr(10)
  SMSmainfrm.SMS.Output = "AT+CMGF=0" & Chr$(13) & Chr(10)
  SMSmainfrm.SMS.Output = "AT+CMGS=" & lnth & Chr$(13) & Chr(10)
  SMSmainfrm.SMS.Output = msg & Chr$(26)
End Function

Public Function savemsg(lnth, msg)
  SMSmainfrm.SMS.Output = "AT" & Chr$(13) & Chr(10)
  SMSmainfrm.SMS.Output = "AT+CMGF=0" & Chr$(13) & Chr(10)
  SMSmainfrm.SMS.Output = "AT+CMGW=" & lnth & ",3" & Chr$(13) & Chr(10)
  SMSmainfrm.SMS.Output = msg & Chr$(26)
End Function
'reversing phone numbers
Public Function revnum(numb)
     s = 1
     ma = ""
     While (s <= Len(numb))
       ta = Mid(numb, s, 2)
       A = Mid(ta, 1, 1)
       B = Mid(ta, 2, 1)
       If B = "" Then B = "F"
       ma = ma & B & A
       s = s + 2
     Wend
     revnum = ma
End Function
Public Function ConvToblinkhex(Text)
    Dim MainTextTemp As String
    MainTextTemp = Text
    Text = ""
    
    For B = 1 To Len(MainTextTemp)
       If Mid(MainTextTemp, B, 1) = "|" Then
         X = "01"
       Else
         X = hex2(Asc(Mid(MainTextTemp, B, 1)))
       End If
        Text = Text & "00" & X
        X = ""
    Next B
    
    ConvToblinkhex = Text
End Function


Public Function ConvToHex(Text)
'This converts text to hex

    Dim B, g As Integer
    Dim MainTextTemp As String
    Dim X As String
    ReDim lbit(160), rbit(160), fin(140) As String
    MainTextTemp = Text
    
    g = 8
    For B = 1 To Len(MainTextTemp)
        If g = 0 Then
           g = 8
        End If
        X = binary(Asc(Mid(MainTextTemp, B, 1)))
        If g <= 8 Then
              lbit(B) = Mid(X, g, 7)
              rbit(B) = Mid(X, 1, g - 1)
              g = g - 1
        End If
        X = ""
    Next B
    J = 0
    For i = 0 To Len(MainTextTemp)
       If i <> Len(MainTextTemp) Then
          If (lbit(i + 1) & rbit(i)) <> "" Then
              fin(J) = lbit(i + 1) & rbit(i)
              J = J + 1
          End If
       Else
          If (rbit(i)) <> "" Then
             fin(J) = rbit(i)
          End If
       End If
    Next i
    Text = ""
    For i = 0 To J
       If fin(i) <> "" Then
          Text = Text & Hex1(fin(i))
       End If
    Next i
    ConvToHex = Text
    MainTextTemp = ""
End Function

Public Function findstr(strp, str)
    txt = strp
    B = 1
    For B = 1 To Len(txt)
       D = Mid(txt, B, Len(str))
       If D = str Then findstr = 1
    Next B
End Function

Public Function binary(Ascii As Integer)
Dim A As Integer, B As Integer, C As Integer, D As Integer, E As Integer, F As Integer, g As Integer, h As Integer
Dim Final As String
If Ascii < 128 Then
  A = 0
Else
  A = 1
  Ascii = Ascii - 128
End If
If Ascii < 64 Then
  B = 0
Else
  B = 1
  Ascii = Ascii - 64
End If
If Ascii < 32 Then
  C = 0
Else
  C = 1
  Ascii = Ascii - 32
End If
If Ascii < 16 Then
  D = 0
Else
  D = 1
  Ascii = Ascii - 16
End If
If Ascii < 8 Then
  E = 0
Else
  E = 1
  Ascii = Ascii - 8
End If
If Ascii < 4 Then
  F = 0
Else
  F = 1
  Ascii = Ascii - 4
End If
If Ascii < 2 Then
  g = 0
Else
  g = 1
  Ascii = Ascii - 2
End If
If Ascii < 1 Then
  h = 0
Else
  h = 1
End If
binary = B & C & D & E & F & g & h

End Function
Public Function Hex1(y)
  s = Len(y)
  r = ""
  A = 0
  B = 1
  While (s > 0)

     r = Mid(y, s, 1) * B
     s = s - 1
     B = B * 2
     A = A + r
  Wend
  
  Hex1 = hex2(A)
  
End Function
Public Function hex2(he)
    y = Hex(he)
    If Len(y) = 1 Then
       y = "0" & y
    End If
    hex2 = y
End Function


Public Function addcombo()
   h = 1
   For h = 1 To 3
       SMSmainfrm.Combo1.AddItem h
   Next h

   SMSmainfrm.Combo2.AddItem "9600,n,8,1"
   SMSmainfrm.Combo2.AddItem "19200,n,8,1"
   SMSmainfrm.Combo2.AddItem "38400,n,8,1"
   SMSmainfrm.Combo2.AddItem "57600,n,8,1"

   h = 0
   Hrs = 0
   Min = 1
   sp = 4
   For h = 0 To 143
       SMSmainfrm.Combo3.AddItem Space(sp) & h & " - " & Hrs & " hrs " & Min * 5 & " Min"
       Min = Min + 1
       If Min = 12 Then
          Min = 0
          Hrs = Hrs + 1
       End If
       If h = 9 Then sp = 2
       If h = 99 Then sp = 0
   Next h
   Hrs = 12
   Min = 30
   For h = 144 To 167
       SMSmainfrm.Combo3.AddItem h & " - " & Hrs & " hrs " & Min & " Min"
       If Min = 30 Then
          Min = 0
          Hrs = Hrs + 1
       Else
          Min = 30
          'Hrs = Hrs + 1
       End If
   Next h
   days = 2
   For h = 168 To 196
       SMSmainfrm.Combo3.AddItem h & " - " & days & " days"
       days = days + 1
   Next h
   weeks = 5
   For h = 197 To 255
       SMSmainfrm.Combo3.AddItem h & " - " & weeks & " weeks"
       weeks = weeks + 1
   Next h
  
   SMSmainfrm.Combo1.ListIndex = 2
   SMSmainfrm.Combo2.ListIndex = 0
   SMSmainfrm.Combo3.ListIndex = 167

End Function
Public Sub SaveValue(Key As String, Value As String)
    WritePrivateProfileString "SMS Messenger v1.0", Key, Value, App.Path & "\settings.ini"
End Sub

Sub GetPrefs()
   SMSmainfrm.Combo1.ListIndex = ReadValue("Port")
   SMSmainfrm.Combo2.ListIndex = ReadValue("Settings")
   SMSmainfrm.Combo3.ListIndex = ReadValue("Msgvalidity")
   SMSmainfrm.Text3.Text = ReadValue("SMSC")
End Sub


Sub SetPrefs()
   SaveValue "Port", SMSmainfrm.Combo1.ListIndex
   SaveValue "Settings", SMSmainfrm.Combo2.ListIndex
   SaveValue "Msgvalidity", SMSmainfrm.Combo3.ListIndex
   SaveValue "SMSC", SMSmainfrm.Text3.Text
End Sub

Public Function ReadValue(Key As String, Optional Default As String, Optional Section As String = "SMS Messenger v1.0", Optional File)
    Dim sReturn As String
    If IsMissing(File) Then File = FullPath(App.Path, "settings.ini")
    sReturn = String(255, Chr(0))
    ReadValue = Left(sReturn, GetPrivateProfileString(Section, Key, Default, sReturn, Len(sReturn), File))
End Function

Function FullPath(lpPath As String, lpFile As String) As String
If Right(lpPath, 1) <> "\" Then lpPath = lpPath & "\"
FullPath = lpPath & lpFile
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -