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

📄 send.pas

📁 发送短信息的程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Send;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, OleCtrls, SHDocVw, ComCtrls,IniFiles,ShellAPI,MSHTML;

type
  TfrmSend = class(TForm)
    gbSendSMS: TGroupBox;
    wbSendSMS: TWebBrowser;
    Label1: TLabel;
    Label2: TLabel;
    cmbSendCode: TComboBox;
    memSendContent: TMemo;
    Label3: TLabel;
    btnSend: TBitBtn;
    btnCancel: TBitBtn;
    sbSendSMS: TStatusBar;
    sbSaveRecCode: TSpeedButton;
    cmbMsgList: TComboBox;
    cmbRecCode: TComboBox;
    sbDeleteRecCode: TSpeedButton;
    lblMsgList: TLabel;
    sbSaveSendCode: TSpeedButton;
    sbDeleteSendCode: TSpeedButton;
    sbSaveMsg: TSpeedButton;
    sbDeleteMsg: TSpeedButton;
    lblTS: TLabel;
    procedure btnSendClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure wbSendSMSDocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    procedure sbSaveSendCodeClick(Sender: TObject);
    procedure sbSaveRecCodeClick(Sender: TObject);
    procedure memSendContentChange(Sender: TObject);
    procedure sbDeleteRecCodeClick(Sender: TObject);
    procedure sbDeleteSendCodeClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cmbRecCodeChange(Sender: TObject);
    procedure cmbSendCodeChange(Sender: TObject);
    procedure sbDeleteMsgClick(Sender: TObject);
    procedure sbSaveMsgClick(Sender: TObject);
    procedure cmbMsgListChange(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure lblTSClick(Sender: TObject);
  private
    { Private declarations }
    iSendSMS:integer;                 //表明正在发送短消息
  public
    { Public declarations }
    function DeleteCR(s:string):string;
    procedure SaveSendCodeInfo;               //保存发送手机信息
    procedure SaveRecCodeInfo;                //保存接收手机信息
    procedure SaveMsgInfo;                    //保存消息
    procedure ReadSendCodeInfo;               //读取发送手机信息
    procedure ReadRecCodeInfo;                //读取接收手机信息
    procedure ReadMsgInfo;                    //读取消息
    procedure FreeData;                       //释放指针
    function  CheckCode(sCode:string):boolean;//检查号码是否合法
  end;
  TSendCodeInfo=record
    sSendCode:string;      //发送手机号码
    sSendName:string;      //发送收机人名称
    sPassword:string;      //发送的密码
  end;
  PSendCodeInfo=^TSendCodeInfo;

  TRecCodeInfo=record
    sRecCode:string;       //接收手机号码
    sRecName:string;       //接受手机人
  end;
  PRecCodeInfo=^TRecCodeInfo;

  TMsgInfo=Record
    sMsgCaption:string;    //消息标题
    sMsgContent:string;    //消息内容
  end;
  PMsgInfo=^TMsgInfo;
var
  frmSend: TfrmSend;

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
  i          :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;
  i          :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;
  i         :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;
  i        :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
  i         :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;

⌨️ 快捷键说明

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