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

📄 unit1.pas

📁 用DELPHI直接通过COM口发短信! 包括PUD编码解码
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, SPComm, Spin;

type
  TForm1 = class(TForm)
    Comm1: TComm;
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    Button3: TButton;
    Memo1: TMemo;
    SpinEdit1: TSpinEdit;
    Label1: TLabel;
    SpinEdit2: TSpinEdit;
    Label2: TLabel;
    Button4: TButton;
    Button5: TButton;
    Edit2: TEdit;
    Button6: TButton;
    Edit3: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Edit4: TEdit;
    Label5: TLabel;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
   procedure SmsEvent(messageType:Integer;Index:Integer;fromMp:String;RevDate:TDatetime);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.SmsEvent(messageType:Integer;Index:Integer;fromMp:String;RevDate:TDatetime);
Begin
    IF messageType=0 then  Memo2.Lines.Add('信息到达:'+Inttostr(Index))
    else
    IF messageType=1 then
        Begin
         Memo2.Lines.Add('报告到达:'+Inttostr(Index)+'    '+fromMp+'  ');

          Memo2.Lines.Add( Datetimetostr(RevDate));
        end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//Comm1.StartComm;
Comm1.CommName:='COM'+Inttostr(SpinEdit1.Value);
Comm1.StartComm;
sleep(100);

Comm1.WriteStr('ATE0'+#13);
sleep(100);
Comm1.SetSMSMode(0);
//Comm1.WriteStr('AT+CSMP=17,167,0,DCS(F0)');
//sleep(100);
//Comm1.WriteStr('AT+CSMP=17,167,0,DCS(F0)');
//sleep(100);
Comm1.WriteStr('AT+CNMI=2,2,0,1,0'+#13);
sleep(100);
Comm1.WriteStr('AT+CNMI=2,2,0,1,0'+#13);
sleep(100);


end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Comm1.StopComm;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Comm1.WriteStr(Edit1.Text+#13);

Memo1.Lines.Add(Comm1.ReadStr);

end;

procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
begin
Memo1.Lines.Add(strpas(Buffer));
end;

procedure TForm1.Button4Click(Sender: TObject);
var
    No,Sms:String;
    PDate:TDatetime;
begin
    //
    Comm1.Readsms(SpinEdit2.Value,No,sms,PDate);
   Memo1.Lines.Add('No= '+No);
   Memo1.Lines.Add('sms= '+sms);
   Memo1.Lines.Add('PDate= '+DatetimeToStr(PDate));
end;

procedure TForm1.Button5Click(Sender: TObject);
var
 tmpstr:String;
begin

memo1.Lines.add('LinkId: '+Inttostr(Comm1.Sendsms(edit1.Text,Edit2.text,Edit4.text)));
memo1.Lines.add(DATETIMETOSTR(Now));
//0006F004818988402132011582004021320115820000
//0006F10D91683127734101F5402132019522004021320195820000



//06003100310031
//0006F30D91683127734101F5402132117044004021321170050000

//06003100310031
//0006F604818988402132119022004021321190220000
end;//                               2004021320115820000

procedure TForm1.Button6Click(Sender: TObject);
Function SetMphonefromBook(MpName,Mphone:String;BookPos:Integer):Boolean;
Begin
    //
    Result:=false;
    Comm1.SetSMSMode(1);
    Comm1.writestr('AT+CPBS="SM"'+#13);
    Sleep(10);
    Comm1.ReadStr;

    Comm1.writestr('AT+CPBW='+Inttostr(BookPos)+',"'+Mphone+'",129,"'+MpName+'"'+#13);

    Sleep(10);
    Comm1.ReadStr;


end;
begin
     SetMphonefromBook('local',Edit3.Text,1)

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Comm1.RevSmsEvent:=SmsEvent;
end;

end.

⌨️ 快捷键说明

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