110,533
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// clsSms 的摘要说明。
/// </summary>
public class clsSms
{
/// <summary>
/// 初始化群发器
/// </summary>
/// <param name="comport">端口</param>
/// <param name="baud">波特率</param>
/// <returns></returns>
[DllImport("mysms.dll", EntryPoint="InitModem", ExactSpelling=false, CharSet=System.Runtime.InteropServices.CharSet.Ansi, SetLastError=true)]
public static extern bool InitModem(int comport, int baud);
/// <summary>
/// 发送消息
/// </summary>
/// <param name="comport">串口</param>
/// <param name="baud">波特率</param>
/// <param name="sMessage">发送的消息</param>
/// <param name="sto">接收方</param>
/// <param name="bEnglish">是否是英文(如果是,则不支持中文字符)</param>
/// <param name="bAlert">是否免提信息(如果是,则不能包含英文字符)</param>
/// <param name="bSr">是否有状态报告</param>
/// <returns>成功</returns>
[DllImport("mysms.dll", EntryPoint="SendSms", ExactSpelling=false, CharSet=System.Runtime.InteropServices.CharSet.Ansi, SetLastError=true)]
public static extern bool SendSms(int comport, int baud, string sMessage, string sto, bool bEnglish, bool bAlert,ref bool bSr);
/// <summary>
/// 读取消息
/// </summary>
/// <param name="comport">串口</param>
/// <param name="baud">波特率</param>
/// <param name="index">信息编号</param>
/// <param name="sMessage">信息</param>
/// <param name="sFrom">对方号码</param>
/// <param name="stime">接收时间</param>
/// <param name="bDel">读取后是否删除</param>
/// <returns></returns>
[DllImport("mysms.dll", EntryPoint="ReadSms", ExactSpelling=false, CharSet=System.Runtime.InteropServices.CharSet.Ansi, SetLastError=true)]
public static extern bool ReadSms(int comport, int baud, int index, StringBuilder sMessage,StringBuilder sFrom, StringBuilder stime, bool bDel);
/// <summary>
/// 发送At指令(本系统暂且不用此函数)
/// </summary>
/// <param name="comport"></param>
/// <param name="baud"></param>
/// <param name="satcommand"></param>
/// <param name="satstr"></param>
/// <param name="satlen"></param>
/// <returns></returns>
[DllImport("mysms.dll", EntryPoint="SendAtCommand", ExactSpelling=false, CharSet=System.Runtime.InteropServices.CharSet.Ansi, SetLastError=true)]
public static extern bool SendAtCommand(int comport, int baud, string satcommand, StringBuilder satstr, long satlen);
public static bool ReadSms(int comport,int baud,int index,ref string strMessage,ref string strFrom,ref string strTime,bool bDel)
{
StringBuilder sMessage = new StringBuilder(256);
StringBuilder sFrom = new StringBuilder(256);
StringBuilder sTime = new StringBuilder(256);
if(ReadSms(comport,baud,index,sMessage,sFrom,sTime,bDel))
{
strMessage=sMessage.ToString();
strFrom=sFrom.ToString();
if(strFrom!=null && strFrom.StartsWith("106")) //专线
{
if(strFrom.Length>12)
{
strFrom=strFrom.Substring(strFrom.Length-12);
}
}
else if(strFrom.Length>11)
{
strFrom=strFrom.Substring(strFrom.Length-11);
}
strTime=sTime.ToString();
return true;
}
return false;
}
}