网页功能: 加入收藏 设为首页 网站搜索  
用PocketPCPhone替代AT指令的手机SMS服务
发表日期:2004-03-02作者:转自CSDN[] 出处:  

新型Pocket PC电话版已将Pocket PC所具备的全部精妙特性同最新电话功能集于一身,我们该到淘汰老式手机的时候了。

国产联想 ET180, dopod 696,dopod 686 等,都是 Pocket PC Phone中的精品,且 ET180中关村售价己经降至 ¥3700元!

看到大家在破8850等机器上折腾AT指令集编写短信收发程序,我感到万分难过。 有这么好用的 Pocket PC Phone,为什么还要用AT指令集的破玩意儿呢?

采用AT指令集编写短信收发程序,需要解决许多技术难题和非计算难题,能折腾你好一阵子,我们就不说了。加上一些不法商贩老是在网上倒腾些控件在兜售,我无法忍受了!

这里我提供了另外一种途径发送中文短信,并给出全部源码,供大家下载。

ET180 PPC机和多普达手机中,含有强大的WINCE操作系统,可以使用WINCE操作系统的开发工具开发出一个简单的短信发送程序。

环境:   联想et180机器,操作系统Pocket 2002, 开发工具为eVB3.0

源代码:

1、创建一个Modules: SMSMessage

源码如下:

Option Explicit

' API declarations

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

' API constants

Public Const SMS_MSGTYPE_TEXT = "Microsoft Text SMS Protocol"

Public Const SMS_MODE_SEND = 2       ' Open in send mode

Public Const SMSDE_GSM = 0         ' Use Unicode GSM encoding

Public Const SMSAT_INTERNATIONAL = 1    ' International number format

Public Const PS_MESSAGE_OPTION_NONE = 1  ' message options

Public Const PS_MESSAGE_CLASS0 = 0     ' Send immediately

Public Const PSRO_NONE = 0         ' No replacements

Public Const SMS_OPTION_DELIVERY_NONE = 0 ' No delivery options

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

 

 ' Open SMS Messaging Component

 If 0 <> SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, SMSHandle, SMSEvent) Then

  MsgBox "Could not open SMS component!", _

      vbCritical, App.Title

  Exit Sub

 End If

 ' Set Address structure (UDT as string)

 SMSAddress = LongToBytes(SMSAT_INTERNATIONAL) & Number

 ' Set Provider structure (UDT as string)

 SMSProvider = LongToBytes(PS_MESSAGE_OPTION_NONE) & _

        LongToBytes(PS_MESSAGE_CLASS0) & _

        LongToBytes(PSRO_NONE)

 ' Send message

 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

  MsgBox "短信息发送成功!", vbInformation, App.Title

 Else

  'MsgBox "Could not send message!", vbCritical, App.Title

  MsgBox "短信息发送失败!", vbCritical, App.Title

 End If

 

 ' Close SMS Messaging Component

 If 0 <> SmsClose(SMSHandle) Then

  'MsgBox "Could not close SMS component!", vbCritical, App.Title

  MsgBox "无法关闭短信息组件!", vbCritical, App.Title

  Exit Sub

 End If

End Sub

Function LongToBytes(ByVal Value As Long) As String

 

 Dim lsHex As String, i As Integer

 

 lsHex = Right("00000000" & Hex(Value), 8)

 For i = 1 To 7 Step 2

  LongToBytes = ChrB(CInt("&H" & Mid(lsHex, i, 2))) & LongToBytes

 Next

End Function

Function BytesToLong(ByVal Value As String) As Long

 

 Dim lsHex As String, i As Integer

 

 For i = 1 To 4

  lsHex = Hex(AscB(MidB(Value, i, 1))) & lsHex

 Next

 BytesToLong = CLng("&H" & lsHex)

End Function

2、创建一个窗体,frmSMS

包含两个文本框,一个按钮,源码如下:

Private Sub Command1_Click()

  SendSMS txtNumber.Text, txtMessage.Text

End Sub

大家可以用winSock编写一个小程序,实现PPC和PC之间的通讯,达到把et180机器作为短信中心的目的,实现如办公自动化系统之类的应用软件 手机短信收发功能。

大家如有技术发面的意见建议,请到MSN(mr_hsx@hotmail.com ,Seala@126.com)上联系。

我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 用PocketPCPhone替代AT指令的手机SMS服务
本类热点文章
  用MSComm控件实现来电显示
  用VB调试串口通讯
  WOL(Wake on Lan)程序的源代码
  用PocketPCPhone替代AT指令的手机SMS服务
  保存页面为MHT的代码
  用VB动态获取所有网络邻居的名称及其IP..
  于Winsock控件制作的一个“服务器,N客..
  VB实现远程共享显示及声音
  Windows下访问共享的解决方案
  VB实现的MSN信息群发软件
  如何检测是否已连接到Internet?
  VB学习:MX记录获取组件
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2019 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00461