打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Delphi?收发短信平台的代码1

Delphi 收发短信平台的代码1

(2007-07-18 10:28:38)

利用新浪网关收发短信的平台

implementation

uses SendCodeInfo, RecCodeInfo;

{$R *.dfm}

function  Tfrmsend.CheckCode(sCode:string):boolean;
var
  i:integer;
begin
  if(Trim(sCode)='') then
  begin
    Result:=false;
    Exit;
  end;
  if(Length(Trim(sCode))<>11) then
  begin
    Result:=false;
    Exit;
  end;
  for i:=1 to 11 do
  begin
    if not (Copy(sCode,i,1)[1] in ['0','1','2','3','4','5','6','7','8','9']) then
    begin
      Result:=false;
      Exit;
    end;
  end;
  Result:=true;
end;

procedure TfrmSend.FreeData;
var
  i:integer;
begin
  for i:=0 to cmbSendCode.Items.Count-1 do
  begin
    if(PSendCodeInfo(cmbSendCode.Items.Objects[i])<>nil) then
      Dispose(PSendCodeInfo(cmbSendCode.Items.Objects[i]));
  end;
  for i:=0 to cmbRecCode.Items.Count-1 do
  begin
    if(PRecCodeInfo(cmbRecCode.Items.Objects[i])<>nil) then
      Dispose(PRecCodeInfo(cmbRecCode.Items.Objects[i]));
  end;
  for i:=0 to cmbMsgList.Items.Count-1 do
  begin
    if(PMsgInfo(cmbMsgList.Items.Objects[i])<>nil) then
      Dispose(PMsgInfo(cmbMsgList.Items.Objects[i]));
  end;
end;

procedure TfrmSend.SaveMsgInfo;
var
          :integer;        //循环使用
  iMsgCount  :integer;        //发送号码的位数
  sMsgCaption:AnsiString;     //号码主人名称
  sMsgContent:AnsiString;     //号码
  strPath    :AnsiString;     //路径
  iniFile    :TIniFile;       //操作ini文件
  sMsg       :AnsiString;     //发送的消息
begin
  strPath:=ExtractFilePath(Application.ExeName)+'SendSMS.ini';
  try
    iniFile:=TIniFile.Create(strPath);
    iniFile.EraseSection('SendMsg');
    IniFile.WriteString('SendMsg','MsgCount',IntToStr(cmbMsgList.Items.Count));
    for i:=0 to cmbMsgList.Items.Count-1 do
    begin
      sMsgCaption:=PMsgInfo(cmbMsgList.Items.Objects[i])^.sMsgCaption;
      sMsgContent:=PMsgInfo(cmbMsgList.Items.Objects[i])^.sMsgContent;
      sMsg:=sMsgCaption+'_CC_'+sMsgContent;
      IniFile.WriteString('SendMsg','Msg'+IntToStr(i+1),sMsg);
    end;
  finally
    if(iniFile<>nil) then
      iniFile.Free;
  end;
end;

procedure TfrmSend.ReadMsgInfo;
var
  iMsgCount  :integer;
          :integer;
  iCC        :integer;
  sMsgCaption:AnsiString;
  sMsgContent:AnsiString;
  iniFile    :TIniFile;
  strPath    :AnsiString;
  sMsg       :AnsiString;
  MsgInfo    :PMsgInfo;
begin
  strPath:=ExtractFilePath(Application.ExeName)+'SendSMS.ini';
  try
    iniFile:=TIniFile.Create(strPath);
    iMsgCount:=iniFile.ReadInteger('SendMsg','MsgCount',0);
    for i:=1 to iMsgCount do
    begin
      sMsg:=iniFile.ReadString('SendMsg','Msg'+IntToStr(i),'');
      iCC:=Pos('_CC_',sMsg);
      sMsgCaption:=Copy(sMsg,1,iCC-1);
      sMsgContent:=Copy(sMsg,iCC+4,Length(sMsg)-iCC-3);
      New(MsgInfo);
      MsgInfo.sMsgCaption:=sMsgCaption;
      MsgInfo.sMsgContent:=sMsgContent;
      cmbMsgList.Items.AddObject(sMsgCaption,TObject(MsgInfo));
    end;
  finally
    if(iniFile<>nil) then
      iniFile.Free;
  end;
end;

procedure TfrmSend.ReadSendCodeInfo;
var
  iSendCount:integer;
         :integer;
  iNC       :integer;
  iCP       :integer;
  sSendName :AnsiString;
  sSendCode :AnsiString;
  sPassword :AnsiString;
  iniFile   :TIniFile;
  strPath   :AnsiString;
  sSend     :AnsiString;
  SendCodeInfo:PSendCodeInfo;
begin
  strPath:=ExtractFilePath(Application.ExeName)+'SendSMS.ini';
  try
    iniFile:=TIniFile.Create(strPath);
    iSendCount:=iniFile.ReadInteger('SendCode','SendCount',0);
    for i:=1 to iSendCount do
    begin
      sSend:=iniFile.ReadString('SendCode','SendCode'+IntToStr(i),'');
      iNC:=Pos('_NC_',sSend);
      iCP:=Pos('_CP_',sSend);
      sSendName:=Copy(sSend,1,iNC-1);
      sSendCode:=Copy(sSend,iNC+4,iCP-iNC-4);
      sPassword:=Copy(sSend,iCP+4,Length(sSend)-iCP);
      New(SendCodeInfo);
      SendCodeInfo.sSendCode:=sSendCode;
      SendCodeInfo.sSendName:=sSendName;
      SendCodeInfo.sPassword:=SPassword;
      cmbSendCode.Items.AddObject(sSendName,TObject(SendCodeInfo));
    end;
  finally
    if(iniFile<>nil) then
      iniFile.Free;
  end;
end;

procedure TfrmSend.ReadRecCodeInfo;
var
  iRecCount:integer;
        :integer;
  iNC      :integer;
  iCP      :integer;
  sRecName :AnsiString;
  sRecCode :AnsiString;
  iniFile  :TIniFile;
  strPath  :AnsiString;
  sRec     :AnsiString;
  RecCodeInfo:PRecCodeInfo;
begin
  strPath:=ExtractFilePath(Application.ExeName)+'SendSMS.ini';
  try
    iniFile:=TIniFile.Create(strPath);
    iRecCount:=iniFile.ReadInteger('ReceiveCode','RecCount',0);
    for i:=1 to iRecCount do
    begin
      sRec:=iniFile.ReadString('ReceiveCode','RecCode'+IntToStr(i),'');
      iNC:=Pos('_NC_',sRec);
      sRecName:=Copy(sRec,1,iNC-1);
      sRecCode:=Copy(sRec,iNC+4,Length(sRec)-iNC-3);
      New(RecCodeInfo);
      RecCodeInfo.sRecCode:=sRecCode;
      RecCodeInfo.sRecName:=sRecName;
      cmbRecCode.Items.AddObject(sRecName,TObject(RecCodeInfo));
    end;
  finally
    if(iniFile<>nil) then
      iniFile.Free;
  end;
end;

procedure TfrmSend.SaveSendCodeInfo;
var
         :integer;        //循环使用
  iSendCount:integer;        //发送号码的位数
  sSendName :AnsiString;     //号码主人名称
  sSendCode :AnsiString;     //号码
  sPassword :AnsiString;     //密码
  strPath   :AnsiString;     //路径
  iniFile   :TIniFile;       //操作ini文件
  sSend     :AnsiString;
begin
  strPath:=ExtractFilePath(Application.ExeName)+'SendSMS.ini';
  try
    iniFile:=TIniFile.Create(strPath);
    iniFile.EraseSection('SendCode');
    IniFile.WriteString('SendCode','SendCount',IntToStr(cmbSendCode.Items.Count));
    for i:=0 to cmbSendCode.Items.Count-1 do
    begin
      sSendName:=PSendCodeInfo(cmbSendCode.Items.Objects[i])^.sSendName;
      sSendCode:=PSendCodeInfo(cmbSendCode.Items.Objects[i])^.sSendCode;
      sPassword:=PSendCodeInfo(cmbSendCode.Items.Objects[i])^.sPassword;
      sSend:=sSendName+'_NC_'+sSendCode+'_CP_'+sPassword;
      IniFile.WriteString('SendCode','SendCode'+IntToStr(i+1),sSend);
    end;
  finally
    if(iniFile<>nil) then
      iniFile.Free;
  end;
end;

procedure TfrmSend.SaveRecCodeInfo;
var
        :integer;        //循环使用
  iRecCount:integer;        //发送号码的位数
  sRecName :AnsiString;     //号码主人名称
  sRecCode :AnsiString;     //号码
  strPath  :AnsiString;     //路径
  iniFile  :TIniFile;       //操作ini文件
  sRec     :AnsiString;
begin
  strPath:=ExtractFilePath(Application.ExeName)+'SendSMS.ini';
  try
    iniFile:=TIniFile.Create(strPath);
    iniFile.EraseSection('ReceiveCode');
    IniFile.WriteString('ReceiveCode','RecCount',IntToStr(cmbRecCode.Items.Count));
    for i:=0 to cmbRecCode.Items.Count-1 do
    begin
      sRecName:=PRecCodeInfo(cmbRecCode.Items.Objects[i])^.sRecName;
      sRecCode:=PRecCodeInfo(cmbRecCode.Items.Objects[i])^.sRecCode;
      sRec:=sRecName+'_NC_'+sRecCode;
      IniFile.WriteString('ReceiveCode','RecCode'+IntToStr(i+1),sRec);
    end;
  finally
    if(iniFile<>nil) then
      iniFile.Free;
  end;
end;

function TfrmSend.DeleteCR(s:string):string;
var
   i:integer;        //循环使用
begin
   i:=Pos(#$d,s);
   while i<>0 do
   begin
      Delete(s,i,1);
      i:=Pos(#$d,s);
   end;
   i:=Pos(#$a,s);
   while i<>0 do
   begin
      Delete(s,i,1);
      i:=pos(#$a,s);
   end;
   Result:=s;
end;

procedure TfrmSend.btnSendClick(Sender: TObject);
var
  ovTargetFrameName:OleVariant;
  ovPostData       :OleVariant;
  ovFlags          :OleVariant;
  ovHeads          :OleVariant;
begin
  if(cmbRecCode.ItemIndex=-1) then
  begin
    MessageBox(Handle,'选择接收的号码!','提示信息',MB_OK);
    Exit;
  end;
  if(CheckCode(PRecCodeInfo(cmbRecCode.Items.Objects[cmbRecCode.ItemIndex])^.sRecCode)=false) then
  begin
    MessageBox(Handle,'接收号码不正确!','提示信息',MB_OK);
    Exit;
  end;
  if(cmbSendCode.ItemIndex=-1) then
  begin
    MessageBox(Handle,'选择发送的号码!','提示信息',MB_OK);
    Exit;
  end;
  if(CheckCode(PSendCodeInfo(cmbSendCode.Items.Objects[cmbSendCode.ItemIndex])^.sSendCode)=false) then
  begin
    MessageBox(Handle,'发送号码不正确!','提示信息',MB_OK);
    Exit;
  end;
  if(Trim(memSendContent.Text)='') then
  begin
    MessageBox(Handle,'输入发送的内容!','提示信息',MB_OK);
    memSendContent.SetFocus;
    Exit;
  end;
  iSendSMS:=0;
  ovTargetFrameName:=0;
  ovPostData:=0;
  ovHeads:=0;
  ovFlags:=0;
  wbSendSMS.Navigate('http://sms.sina.com.cn/docs/send.html',
                     ovFlags,ovTargetFrameName,ovPostData,ovHeads);
  sbSendSMS.Panels.Items[0].Text:='正在发送...';
end;

procedure TfrmSend.btnCancelClick(Sender: TObject);
begin
  wbSendSMS.Stop;
  //Close;
end;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
记忆Delphi窗体上控件的位置和大小
安卓读写INI文件
delphi读取MBR数据源码
使用拼音首字母序列实现检索功能
程序配置信息的保存(Borland C Builder环境)
高精度乘法和阶乘(转)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服