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

📄 谁有手机发送短信源代码-activex 控件-delphi.htm

📁 大家可以看看
💻 HTM
📖 第 1 页 / 共 2 页
字号:
  href="http://langchaosoft.com.cn/delphi/activex/data3032250.html">Visual 
  Graph在可视化工...</A> 
  <LI><A title=如何开发ACTIVEX应用程序 
  href="http://langchaosoft.com.cn/delphi/activex/data3032710.html">如何开发ACTIVEX应用程序</A> 

  <LI><A title="谁能告诉我?这个问题困扰我很久很久了 关于mscomm" 
  href="http://langchaosoft.com.cn/delphi/activex/data3033303.html">谁能告诉我?这个问题困扰我很久很久...</A> 

  <LI><A title=这样的一个dll应该如何写? 
  href="http://langchaosoft.com.cn/delphi/activex/data3036119.html">这样的一个dll应该如何写?</A> 

  <LI><A title=在VC++中,做一个DLL,其中用到一个ActiveX控件,要怎么办? 
  href="http://langchaosoft.com.cn/delphi/activex/data3036365.html">在VC++中,做一个DLL,其中用...</A> 
  </LI></UL></DIV>
<DIV id=hcc>本站特约赞助:</DIV>
<DIV class=box>
<UL>
  <DIV align=center><!--right_ads_begin-->
  <SCRIPT type=text/javascript><!--
google_ad_client = "pub-2922075356939851";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "EFEFEF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "E6E6E6";
//--></SCRIPT>

  <SCRIPT src="谁有手机发送短信源代码-ActiveX 控件-Delphi.files/show_ads.js" 
  type=text/javascript>
</SCRIPT>
  <BR><!--right_ads_end--></DIV>
  <SCRIPT src="谁有手机发送短信源代码-ActiveX 控件-Delphi.files/right_ad.js"></SCRIPT>
</UL></DIV></DIV>
<DIV id=leftside>
<DIV id=hcc>谁有手机发送短信源代码?</DIV><BR><!--content_ads_begin-->
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-2922075356939851";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "E6E6E6";
//--></SCRIPT>

<SCRIPT src="谁有手机发送短信源代码-ActiveX 控件-Delphi.files/show_ads.js" 
type=text/javascript>
</SCRIPT>
<BR><!--content_ads_end-->谁有手机发送短信源代码?
<HR>
手机短信息SMS开发—编码,解码<BR><BR>1、&nbsp;&nbsp;英文编码<BR>缺省的GSM字符集为7位编码,ASCII码为8位编码,编码就是将8位ASCII编码转换为7位编码。<BR>例如:1234&nbsp;编码后得到31D98C06<BR>2进制表示<BR>8位编码&nbsp;00110001&nbsp;00110010&nbsp;00110011&nbsp;00110100<BR>7位编码&nbsp;00110001&nbsp;11011001&nbsp;10001100&nbsp;00000110&nbsp;<BR>通过例子可以看出,将ascii8位编码的Bit8去掉,依次将下7位编码的后几位逐次移到前面,形成新的8位编码。<BR>以下是C++Builder的实现代码:<BR>String&nbsp;__stdcall&nbsp;EncodeEnglish(String&nbsp;InputStr)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n,len,cur;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;tempstr,returnstr;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;mid1[2],mid2[2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len=InputStr.Length();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=1;i&lt;=len;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i&lt;len)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(mid1,InputStr.SubString(i,1).c_str());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(mid2,InputStr.SubString(i+1,1).c_str());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur=(mid1[0]&gt;&gt;n)|((mid2[0]&lt;&lt;(7-n))&amp;&nbsp;0xff);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(mid1,InputStr.SubString(i,1).c_str());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur=(mid1[0]&gt;&gt;n)&amp;&nbsp;0x7f;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FmtStr(tempstr,"%2.2X",ARRAYOFCONST((cur)));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returnstr=returnstr+tempstr;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n=(n+1)%7;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(n==0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<BR>&nbsp; 
}<BR>return&nbsp;returnstr;<BR>}<BR>2、&nbsp;&nbsp;英文解码<BR>简单地说就是将7位字符编码转换为8为字符编码<BR>以下是C++Builder的实现代码:<BR>int&nbsp;ReturnHex(int&nbsp;Value)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(Value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;0:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value=0x7f;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value=0x3f;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;2:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value=0x1f;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;3:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value=0x0f;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;4:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value=0x07;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;5:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value=0x03;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;6:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value=0x01;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;7:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value=0x00;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Value;<BR>}<BR>String&nbsp;__stdcall&nbsp;DecodeEnglish&nbsp;(String&nbsp;InputStr)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;InStr[300];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;OutStr[300];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;str;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;j=0,i=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;Point=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;temp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(InStr,0,301);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(OutStr,0,301);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;InputStr.Length();i=i+2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str="0x"+InputStr.SubString(i+1,2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InStr[i/2]=StrToInt(str);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(j&lt;=InputStr.Length()/2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Point==0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutStr[i]=InStr[j]&amp;ReturnHex(Point);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>OutStr[i]=((InStr[j]&amp;ReturnHex(Point))&lt;&lt;Point)|(InStr[j-1]&gt;&gt;(8-Point));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Point%7==0&amp;&amp;Point!=0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Point=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Point=Point+1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=i-(i/8);<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutStr[12]=((InStr[12]&amp;0x07)&lt;&lt;5)|(InStr[11]&gt;&gt;(8-5));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;AnsiString(OutStr);<BR>}<BR>3、&nbsp;&nbsp;中文编码<BR>中文编码较为简单,就是将GB2312的中文编码转换为代码页为CP936的Unicode编码即可<BR>以下是C++Builder的实现代码<BR>String&nbsp;&nbsp;EncodeChinese(String&nbsp;InputStr)<BR>{<BR>&nbsp; 
int&nbsp;cur;<BR>String&nbsp;tempstr,returnstr;<BR>WideString&nbsp;ws;<BR>wchar_t&nbsp;&nbsp;mid[2];<BR>ws=WideString(InputStr);<BR>for(int&nbsp;i=1;i&lt;=ws.Length();i++)<BR>{<BR>wcscpy(mid,ws.SubString(i,1).c_bstr());<BR>cur=mid[0];<BR>FmtStr(tempstr,"%4.4X",ARRAYOFCONST((cur)));<BR>returnstr=returnstr+tempstr;<BR>}<BR>return&nbsp;returnstr;<BR>}<BR>4、&nbsp;&nbsp;中文解码<BR>将代码页为CP936的Unicode编码转换为GB2312的中文编码即可<BR>&nbsp;<BR>以下是C++Builder的实现代码<BR>String&nbsp;&nbsp;DecodeChinese(String&nbsp;InputStr)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wchar_t&nbsp;Buf[300];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;InputStr.Length();i=i+4)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buf[i/4]=StrToInt("0x"+InputStr.SubString(i+1,4));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buf[InputStr.Length()/4]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;WideCharToString(Buf);<BR>}
<HR>
SMS程式开发<BR>九十年代初,AT命令仅被用于modem操作。由于没有控制移动电话文本消息的先例,因此开发了一种叫SMS&nbsp;Block&nbsp;Mode的协议,通过终端设备(TE)或电脑来完全控制SMS。几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM研制了一整套AT命令,其中包含对SMS的控制。AT命令在此基础上演化并被加入GSM&nbsp;07.05标准,以及之后的GSM&nbsp;07.07标准。<BR><BR>对SMS的控制共有三种实现途径:&nbsp;<BR>&#8226;&nbsp;&nbsp;最初的Block&nbsp;Mode;&nbsp;<BR>&#8226;&nbsp;&nbsp;基于AT命令的Text&nbsp;Mode;&nbsp;<BR>&#8226;&nbsp;&nbsp;基于AT命令的PDU&nbsp;Mode;<BR>到现在,PDU已取代Block&nbsp;Mode,后者逐渐淡出。<BR>什么是PDU&nbsp;Mode?<BR>它是发送或接收手机SMS消息的一种方法。消息正文经过十六进制编码后进行传送。<BR>PDU命令有哪些?<BR>基本的PDU命令是AT+CMGR,AT+CMGL,AT+CMGS。例如读取电话上全部未读过的SMS消息,最简单的办法是用AT+CMGL=0;而用AT+CMGL=4则可读取全部SMS消息,无论已读过与否。&nbsp;<BR><BR>实例:<BR>15:38:58&nbsp;TX:AT<BR>15:39:05&nbsp;TX:AT+CPMS="ME"<BR>15:39:05&nbsp;RX:AT+CPMS="ME"<BR>15:39:05&nbsp;RX:<BR>+CPMS:&nbsp;15,15,4,10,15,15<BR>15:39:05&nbsp;RX:<BR>OK<BR><BR>15:39:07&nbsp;TX:AT+CMGL=0<BR>15:39:07&nbsp;RX:AT+CMGL=0<BR>15:39:07&nbsp;RX:<BR>+CMGL:&nbsp;5,0,,52&nbsp;<BR><BR>15:39:07&nbsp;<BR>RX:07914408020033F40407D0B1582C0600000030525183920028D43708<BR>2E7FD3CB633A888E2E83EE6F399B0C32CBDF6D10B96C0FCFE9617AFAED76B95C<BR>15:39:07&nbsp;RX:&nbsp;<BR>OK<BR><BR>使用工具对上述收到的SMS进行解码后,可得到如下的解释:&nbsp;<BR>IEI:&nbsp;00<BR>LENGTH:&nbsp;00<BR>MESSAGE&nbsp;REF:&nbsp;00<BR>STATUS:&nbsp;00<BR>SC&nbsp;Address&nbsp;length:&nbsp;07<BR>SC&nbsp;Address&nbsp;type:&nbsp;91<BR>Type&nbsp;of&nbsp;number:&nbsp;International<BR>Numbering&nbsp;plan&nbsp;identifier:&nbsp;E.164<BR>SC&nbsp;Address:&nbsp;44802000334<BR>Message&nbsp;Type&nbsp;Indicator:&nbsp;04<BR>Message&nbsp;Type:&nbsp;SMS-DELIVER&nbsp;/&nbsp;SMS-DELIVER&nbsp;REPORT<BR>More&nbsp;Messages&nbsp;To&nbsp;Send:&nbsp;No<BR>Status&nbsp;Report&nbsp;Indication:&nbsp;No<BR>Reply&nbsp;Path:&nbsp;No<BR>Originating&nbsp;Address&nbsp;Length:&nbsp;07<BR>Originating&nbsp;Address&nbsp;type:&nbsp;D0<BR>Type&nbsp;of&nbsp;number:&nbsp;Alphanumeric<BR>Numbering&nbsp;plan&nbsp;identifier:&nbsp;Unknown<BR>Originating&nbsp;Address:&nbsp;1B85C260<BR>Decoded:&nbsp;1111<BR>Protocol&nbsp;Identifier:&nbsp;Default<BR>Data&nbsp;Coding&nbsp;Scheme:&nbsp;GSM&nbsp;Default&nbsp;Alphabet<BR>SC&nbsp;Timestamp:&nbsp;00305251839200<BR>decoded:&nbsp;00/03/25&nbsp;15:38:29<BR>Time&nbsp;Zone:&nbsp;GMT+0.00H<BR>User&nbsp;Data&nbsp;Length:&nbsp;28<BR>decimal:&nbsp;40<BR>Message:&nbsp;To&nbsp;protect&nbsp;the&nbsp;world&nbsp;from&nbsp;devastation<BR>于是我们知道这条SMS消息的第一部分是:<BR>07914408020033F4<BR>07是跟在服务中心地址内的字节数;<BR>91是TON/NPI。TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还可有其他数值,但91最常用到。<BR>44080200033F4是所使用的服务中心地址,由于位置上略有处理,实际号码应为:<BR>44802000334F(字母F意指长度减1),这就是服务中心的准确地址(号码)。<BR>下一单元是:<BR><BR>04<BR><BR>这是文件头字节(header&nbsp;byte,&nbsp;是一种bitmask)。将每个字节设为1时,有如下含义:<BR><BR>10000000<BR>回复路径(Reply&nbsp;Path):移动电话可循发送SMS消息的短消息中心进行回复(但并非所有SMSC都会这样设置)。<BR><BR>01000000<BR>TP-UDH&nbsp;-&nbsp;带有用户数据文件头<BR><BR>00100000<BR>TP-Status-Report-Indication&nbsp;-&nbsp;发送状态报告给发信人,表示消息收到<BR><BR>00010000<BR>00001000<BR>此两类在正常的移动终接短消息(MT,Mobile&nbsp;Terminated&nbsp;SMS)中不会使用。<BR><BR>00000100<BR>TP-More&nbsp;Messages&nbsp;to&nbsp;Send&nbsp;-&nbsp;SMSC内再无新消息发送给该移动电话。<BR><BR>00000010<BR>00000001<BR>最后两个位数表示消息种类&nbsp;-&nbsp;10指是移动终接短消息(MT),01指移动起始短消息(MO,Mobile&nbsp;Originated&nbsp;SMS)。<BR><BR>所以"04"指此条消息是正常的移动终接短消息,SMSC内再无新消息发送给该手机。<BR><BR><BR>my&nbsp;mail&nbsp;&nbsp;:&nbsp;&nbsp;jinwutongbj@yahoo.com.cn
<HR>
我有
<HR>
谢谢各位提供的代码。
<HR>
gyh75:<BR>lqk586@126.com<BR>能把源码发给我吗?十分感谢!
<HR>
谢谢 </DIV></DIV>
<DIV id=footer>
<SCRIPT src="谁有手机发送短信源代码-ActiveX 控件-Delphi.files/footer.js"></SCRIPT>
</DIV></DIV></BODY></HTML>

⌨️ 快捷键说明

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