誰能告訴我有關寫代碼發短信問題
手機號為:+8613612345678
服務中心號:+8613800755500
發送短信內容:中
發送格式:
AT+CMGS=17<回車,ASCII為13>
addr+phone+<^Z>+換行回車<13和10>發出的內容為:
AT+CMGS=17<回車>0891683108705505F011000D91683116325476F8000800024E2D^Z換行回車
手機號為:+8613612345678
服務中心號:+8613800755500
發送短信內容:中
發送格式:
AT+CMGS=17<回車,ASCII為13>
addr+phone+<^Z>+換行回車<13和10>發出的內容為:
AT+CMGS=17<回車>0891683108705505F011000D91683116325476F8000800024E2D^Z換行回車
解决方案 »
- 【求助】关于地址栏重写的问题
- 关于获取属性的description等问题
- 能否读取pci扩展卡的芯片信息????
- 请问TreeView控件中怎么样实现递归?
- 模糊查询的问题
- 是由ArrayList数组绑定要DataList上的,请问如何这个DataList的分页?(注:DataList与数据库分页资料很多)
- 在Web里怎么把一副现存的图片做为输出新图的背景图?
- webview控件,有谁能给个实例吗?
- 为什么结果listBox1中显示的是:System.Data.DataRowView呢?
- WPF DataGrid模板列绑定问题
- 刚刚学习C#现在想学三层架构,谁给我发个例子!
- 请教一个WPF的问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
具体发送消息的格式网上有。Telnet也能连上手机。
bool TFrmMain::SenD(int aComm, AnsiString TeleNo, AnsiString ShowText)
///////////////////////////////////////////////////////////////
// 名称:短信发送函数;
// 功能:把ShowText通过aComm串口发送到 TeleNo手机上 ,循环nTry次
// 参数:aComm串口号,TeleNo接收方手机号码,ShowText发送内容
// 返回值:返回True表示发送成功,反之发送失败
////////////////////////////////////////////////////////////////
{
AnsiString StrTeleNo,No1,No2,Str,No;
int iT;
AnsiString ShortTextHex,ShortTextLen,ShortTextLenHex,Str1;
int i, j, k,n;
wchar_t ShortTextA[2048];
TMSComm *MSComm = NULL;
bool Result = false;
try
{
StrTeleNo = "";
for (iT = 1; iT < TeleNo.Length(); iT++)
{
if (iT % 2 == 0)
{
Str = RightStr(MidStr(TeleNo,1,iT), 2);
No1 = RightStr(Str, 1);
No2 = LeftStr(Str, 1);
No = No1 + No2;
StrTeleNo = StrTeleNo + No ;
}
}
StrTeleNo = StrTeleNo + "F" + RightStr(TeleNo,1); //================处理短信内容,字符串转换成Unicode
memset(ShortTextA, 0, 2048);
StringToWideChar(ShowText, ShortTextA, ShowText.Length());
ShortTextHex = "" ;
i = 0;
char strtemp[100];
while ((ShortTextA[i] != '\0'))
{
j = (int)ShortTextA[i];
memset(strtemp, 0, 100); //k * 0x100 + j + 0x10000
sprintf(strtemp, "%4.4X", j);
ShortTextHex = ShortTextHex + strtemp;
i++;
}
i *=2;
if ((i-1) < 140) //处理要发送文本的长度
{
ShortTextLenHex= IntToHex(i,2);
}
else
{
ShortTextLenHex = '8C';
}
ShortTextLen = IntToStr(i + 15);
//===========发送信息
MSComm = new TMSComm(this);
MSComm->CommPort = aComm;
MSComm->Settings = StrPaut + ",n,8,1";
MSComm->OutBufferSize = 1024 ;
MSComm->OutBufferCount = 0;
MSComm->InputLen = 0 ;
if (MSComm->RTSEnable)
MSComm->RTSEnable = false ;
if (MSComm->PortOpen)
MSComm->PortOpen = false ;
MSComm->RTSEnable =true;
MSComm->PortOpen = true;
AnsiString StrTemp = "AT\rAT+CNMI=2,2\rAT+CMGF=0\r";
memset(ShortTextA, 0, 2048);
MSComm->Output = StrTemp ;
Application->ProcessMessages();
StrTemp = "AT+CMGS=" + ShortTextLen + "\r0011000D9168" + StrTeleNo + "000801" + ShortTextLenHex + ShortTextHex + "\x01A";
memset(ShortTextA, 0, 2048);
MSComm->Output = StrTemp;
Sleep(3000);
MSComm->Update();
Sleep(500);
MSComm->RTSEnable = false;
MSComm->PortOpen = false;
Result = true;
}
catch(...){}
Sleep(1500);
if(MSComm != NULL) delete MSComm;
return Result;
}