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

📄 send.pas

📁 发送短信息的程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      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
  i        :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;

procedure TfrmSend.wbSendSMSDocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  i          :integer;               //循环使用
  iInputCount:integer;               //计算<Input> 的次数
  ovDoc      :OleVariant;            //取得网页的内容
  sSendCode  :AnsiString;            //发送手机号码
  sPassword  :AnsiString;            //发送短消息的密码
  sRecCode   :AnsiString;            //接收代码
begin
  case iSendSMS of
  0:
    begin
      Inc(iSendSMS);
      ovDoc:=(Sender as TWebBrowser).Document;
      iInputCount:=0;
      for i:=0 To ovDoc.All.Length-1 do
      begin
        if (ovDoc.All.Item(i).tagName = 'TEXTAREA')and //一定大写
           (ovDoc.All.Item(i).name='msg')then          //大小写与原文一致
        begin
           ovDoc.All.Item(i).Value:=DeleteCR(memSendContent.Lines.Text);
          Inc(iInputCount);
        end;
        if (ovDoc.All.Item(i).tagName = 'INPUT')and     //一定大写
           (ovDoc.All.Item(i).type='text')and          //大小写与原文一致
           (ovDoc.All.Item(i).Name='mob1')then
        begin
          sRecCode:=PRecCodeInfo(cmbRecCode.Items.Objects[cmbRecCode.ItemIndex])^.sRecCode;
          ovDoc.All.Item(i).Value:=Trim(sRecCode);
          Inc(iInputCount);
        end;
        if (ovDoc.All.Item(i).tagName = 'INPUT')and //一定大写
           (ovDoc.All.Item(i).type='text')and  //大小写与原文一致
           (ovdoc.All.Item(i).Name='user')then
        begin
          sSendCode:=PSendCodeInfo(cmbSendCode.Items.Objects[cmbSendCode.ItemIndex])^.sSendCode;
          ovDoc.All.Item(i).Value:=Trim(sSendCode);
          Inc(iInputCount);
        end;
        if (ovDoc.All.Item(i).tagName = 'INPUT')and //一定大写
           (ovDoc.All.Item(i).type='password')and  //大小写与原文一致
           (ovDoc.All.Item(i).Name='passwd')then
        begin
          sPassword:=PSendCodeInfo(cmbSendCode.Items.Objects[cmbSendCode.ItemIndex])^.sPassword;
          ovDoc.All.Item(i).Value:=Trim(sPassword);
          Inc(iInputCount);
        end;
        if (ovDoc.All.Item(i).tagName = 'INPUT')and  //一定大写
           (ovDoc.All.Item(i).type='submit')and  //大小写与原文一致
           (ovDoc.All.Item(i).value=' 发送 ')then
        begin
          if iInputCount=4 then
            ovDoc.All.Item(i).Click;
          Inc(iInputCount);
        end;
      end;
    end;
  1:
    begin
      ovDoc:=(Sender as TWebBrowser).Document;
      Inc(iSendSMS);
      if(Pos('发送成功',ovDoc.All.item.innerhtml)<>0) then
        sbSendSMS.Panels.Items[0].Text:='发送成功'
      else
        sbSendSMS.Panels.Items[0].Text:='发送失败';
    end;
  end;
end;

procedure TfrmSend.sbSaveSendCodeClick(Sender: TObject);
begin
  frmSendCodeInfo:=TfrmSendCodeInfo.Create(Self);
  frmSendCodeInfo.ShowModal;
  frmSendCodeInfo.Free;
end;

procedure TfrmSend.sbSaveRecCodeClick(Sender: TObject);
begin
  frmRecCodeInfo:=TfrmRecCodeInfo.Create(Self);
  frmRecCodeInfo.ShowModal;
  frmRecCodeInfo.Free;
end;

procedure TfrmSend.memSendContentChange(Sender: TObject);
begin
  memSendContent.Text:=DeleteCR(memSendContent.Lines.Text);
end;

procedure TfrmSend.sbDeleteRecCodeClick(Sender: TObject);
begin
  cmbRecCode.DeleteSelected;
  SaveRecCodeInfo;
end;

procedure TfrmSend.sbDeleteSendCodeClick(Sender: TObject);
begin
  cmbSendCode.DeleteSelected;
  SaveSendCodeInfo;
end;

procedure TfrmSend.FormCreate(Sender: TObject);
begin
  ReadSendCodeInfo;
  ReadRecCodeInfo;
  ReadMsgInfo;
end;

procedure TfrmSend.cmbRecCodeChange(Sender: TObject);
begin
  if(cmbRecCode.ItemIndex<>-1) then
  begin
    sbSendSMS.Panels.Items[1].Text:='接收:'+PRecCodeInfo(cmbRecCode.Items.Objects[cmbRecCode.ItemIndex])^.sRecCode;
  end;
end;

procedure TfrmSend.cmbSendCodeChange(Sender: TObject);
begin
  if(cmbSendCode.ItemIndex<>-1) then
  begin
    sbSendSMS.Panels.Items[2].Text:='发送:'+PSendCodeInfo(cmbSendCode.Items.Objects[cmbSendCode.ItemIndex])^.sSendCode;
  end;
end;

procedure TfrmSend.sbDeleteMsgClick(Sender: TObject);
begin
  cmbMsgList.DeleteSelected;
  SaveMsgInfo;
end;

procedure TfrmSend.sbSaveMsgClick(Sender: TObject);
var
  sMsgCaption:AnsiString;
  sMsgContent:AnsiString;
  MsgInfo:PMsgInfo;
begin
  if(Trim(cmbMsgList.Text)='') then
  begin
    cmbMsgList.SetFocus;
    MessageBox(Handle,'输入消息标题','提示信息',MB_OK);
    Exit;
  end;
  if(Trim(memSendContent.Text)='') then
  begin
    memSendContent.SetFocus;
    MessageBox(Handle,'没有消息内容!','提示信息',MB_OK);
    Exit;
  end;
  if(cmbMsgList.Items.IndexOf(Trim(cmbMsgList.Text))<>-1) then
  begin
    if(MessageBox(Handle,'已经有此消息!,继续加入以此标题的消息?','提示信息',MB_YESNO)=IDNO) then
      Exit;
  end;
  sMsgCaption:=Trim(cmbMsgList.Text);
  sMsgContent:=Trim(memSendContent.Text);
  New(MsgInfo);
  MsgInfo.sMsgCaption:=sMsgCaption;
  MsgInfo.sMsgContent:=sMsgContent;
  cmbMsgList.Items.AddObject(sMsgCaption,TObject(MsgInfo));
  SaveMsgInfo; 
end;

procedure TfrmSend.cmbMsgListChange(Sender: TObject);
begin
  if(cmbMsgList.ItemIndex<>-1) then
  begin
    memSendContent.Lines.Clear;
    memSendContent.Text:=PMsgInfo(cmbMsgList.Items.Objects[cmbMsgList.ItemIndex])^.sMsgContent;
  end;
end;

procedure TfrmSend.FormDestroy(Sender: TObject);
begin
  FreeData;
end;

procedure TfrmSend.lblTSClick(Sender: TObject);
begin
  ShellExecute(Handle,'open','http://sms.sina.com.cn/docs/term2.html',nil,nil,SW_SHOWNORMAL);
end;

end.

⌨️ 快捷键说明

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