新手 手机群发信息软件
想自制一个用自己的手机数据线连接电脑的群发短信的软件,我在网上搜了一个SmsTest测试程序,单个人发可以,不知道如何群发?现请教各位高手,怎样修改代码。发送代码如下:
void CSenddlg::OnSendOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
CEdit* strContent = (CEdit*)GetDlgItem(IDC_SEND_EDIT);
strContent->GetWindowText(m_strContent);
m_strNumber.GetWindowText(strNumber);
if(strNumber.IsEmpty ()||strNumber.GetLength() < 11)
{
AfxMessageBox("请输入正确的号码!");
m_strNumber.SetFocus();
m_strNumber.SetEditSel(-1, 0);
return;
}
// 检查短消息内容是否空,或者超长
CString strUnicode;
WCHAR wchar[1024];
int nCount = ::MultiByteToWideChar(CP_ACP, 0, m_strContent, -1, wchar, 1024);
if(nCount <= 1)
{
AfxMessageBox("请输入消息内容!");
strContent->SetFocus();
strContent->SetSel(-1, 0);
return;
}
else if(nCount > 70) // 我们决定全部用UCS2编码,最大70个字符(半角/全角)
{
AfxMessageBox("消息内容太长,无法发送!");
strContent->SetFocus();
strContent->SetSel(-1, 0);
return;
}
if(AfxMessageBox("确定发送吗?", MB_YESNO) == IDYES)
{
SM_PARAM SmParam;
TRACE("State=SmParam\n");
memset(&SmParam, 0, sizeof(SM_PARAM));
// 去掉号码前的"+"
if(m_strSmsc[0] == '+') m_strSmsc = m_strSmsc.Mid(1);
if(strNumber[0] == '+') strNumber = strNumber.Mid(1);
// 在号码前加"86"
if(m_strSmsc.Left(2) != "86") m_strSmsc = "86" + m_strSmsc;
if(strNumber.Left(2) != "86") strNumber = "86" + strNumber;
TRACE("State=填充短消息结构\n");
// 填充短消息结构
strcpy_s(SmParam.SCA, m_strSmsc);
strcpy_s(SmParam.TPA, strNumber);
strcpy_s(SmParam.TP_UD, m_strContent);
SmParam.TP_PID = 0;
SmParam.TP_DCS = GSM_UCS2;
TRACE("State=发送短消息\n");
// 发送短消息
p->PutSendMessage(&SmParam);
}
strContent->SetFocus();
strContent->SetSel(-1, 0);
UpdateData(FALSE);
}