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

📄 unit1.pas

📁 小灵猫短信发送二次开发驱动。基于DELPHI7开发
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, SysUtils, Classes, Forms, Dialogs, StdCtrls, PHSCTRLLib_TLB, OleCtrls, Controls,
  ComCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    MobileEdit: TEdit;
    Label2: TLabel;
    GroupBox2: TGroupBox;
    Memo1: TMemo;
    Label3: TLabel;
    ContentEdit: TEdit;
    Label4: TLabel;
    RegCodeEdit: TEdit;
    Button3: TButton;
    StatusBar1: TStatusBar;
    ComboBox1: TComboBox;
    Label5: TLabel;
    SerialEdit: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure RegCodeEditKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    SysWinNt:Boolean;
    AppPath:String;
  public
    { Public declarations }
    PHSCTRL1:TPHSCTRL;
    procedure PHSCTRL1NewSSM(Sender: TObject; const PhoneNo, msg: WideString);
    procedure PHSCTRL1SendMsgFail(Sender: TObject; const telenum, msg: WideString);
    procedure PHSCTRL1SendMsgSuccess(Sender: TObject; const telenum, msg: WideString);
  end;
  Function interface_reg(Regcode:string;PHSCTRL:TPHSCTRL):Boolean;stdcall;external 'SMS5.dll' name 'interface';
  Function SMS5_Serial():PChar;stdcall;external 'SMS5.dll' name 'Serial';

var
  Form1: TForm1;

implementation

{$R *.dfm}

{******************短信猫事件 Begin *********************}
procedure TForm1.PHSCTRL1NewSSM(Sender: TObject; const PhoneNo, msg: WideString);
begin
  Memo1.Lines.Add('【新短信】');
  Memo1.Lines.Add('来自:'+PhoneNo);
  Memo1.Lines.Add('内容:'+msg);
  Memo1.Lines.Add('---------------------------------');
  {提示音psWhisle}If SysWinNt Then begin Windows.Beep (523,80); Windows.Beep (698,80); Windows.Beep (784,80); Windows.Beep (1046,80); end;
end;
procedure TForm1.PHSCTRL1SendMsgFail(Sender: TObject; const telenum, msg: WideString);
begin
  Memo1.Lines.Add('【发送失败】');
  Memo1.Lines.Add('接收号码:'+telenum);
  Memo1.Lines.Add('短信内容:'+msg);
  Memo1.Lines.Add('---------------------------------');
  {提示音bError}If SysWinNt Then begin Windows.Beep (100,100); Windows.Beep (50,100); end;
end;
procedure TForm1.PHSCTRL1SendMsgSuccess(Sender: TObject; const telenum, msg: WideString);
begin
  Memo1.Lines.Add('【发送成功】');
  Memo1.Lines.Add('接收号码:'+telenum);
  Memo1.Lines.Add('短信内容:'+msg);
  Memo1.Lines.Add('---------------------------------');
  {提示音psWhisle}If SysWinNt Then begin Windows.Beep (523,80); Windows.Beep (698,80); Windows.Beep (784,80); Windows.Beep (1046,80); end;
end;
{******************短信猫事件 End *********************}


procedure TForm1.FormCreate(Sender: TObject);
var
  VersionInfo : TOSVersionInfo;
begin
  AppPath:=ExtractFilePath(Application.EXEName); if copy(AppPath, length(AppPath), 1) <> '\' then AppPath := AppPath + '\';
  VersionInfo.dwOSVersionInfoSize:=SizeOf (VersionInfo); GetVersionEx(VersionInfo); SysWinNt:=VersionInfo.dwPlatformID=VER_PLATFORM_WIN32_NT;
  Winexec(Pchar('regsvr32.exe '+AppPath+'PHSCTRL.ocx -s'),0);

  Button1.Enabled:=true;
  Button2.Enabled:=false;
  Button3.Enabled:=false;
  MobileEdit.Text:='';
  ContentEdit.Text:='';
  SerialEdit.Text:=SMS5_Serial;
  RegCodeEdit.Text:='';

  PHSCTRL1                  := TPHSCTRL.Create(Form1);
  PHSCTRL1.Parent           := Form1;
  PHSCTRL1.Top              := 15;
  PHSCTRL1.Left             := 432;
  PHSCTRL1.height           := 19;
  PHSCTRL1.width            := 63;
  PHSCTRL1.CSQState         := 0;
  PHSCTRL1.RegState         := 0;
  PHSCTRL1.Tag              := 10;
  PHSCTRL1.Name             := 'PHSCTRL1';
  PHSCTRL1.OnNewSSM         := PHSCTRL1NewSSM;        //新短信到达
  PHSCTRL1.OnSendMsgFail    := PHSCTRL1SendMsgFail;   //短信发送失败
  PHSCTRL1.OnSendMsgSuccess := PHSCTRL1SendMsgSuccess;//短信发送成功
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  interface_reg(RegCodeEdit.Text,PHSCTRL1);
  PHSCTRL1.StartDevice(ComboBox1.ItemIndex+1);
  if PHSCTRL1.RegState=1 then
  begin
  {|} Button1.Enabled:=false;
  {|} Button2.Enabled:=True;
  {|} Button3.Enabled:=True;
  {|} showmessage('设备起动成功.');
  end else
  begin
  {|} Button1.Enabled:=True;
  {|} Button2.Enabled:=False;
  {|} Button3.Enabled:=False;
  {|} showmessage('设备起动失败!');
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  PHSCTRL1.StopDevice;
  PHSCTRL1.RegState:=0;
  PHSCTRL1.CSQState:=0;
  Button1.Enabled:=true;
  Button2.Enabled:=false;
  Button3.Enabled:=false;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
    if PHSCTRL1.RegState=0 then
    begin
    {|}  Application.Messagebox('设备未启动!','提示',MB_OK);
    {|}  Exit;
    end;
    PHSCTRL1.SendShortMsg(MobileEdit.Text,ContentEdit.Text);
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Winexec(Pchar('regsvr32.exe '+AppPath+'PHSCTRL.ocx -u -s'),0);
end;

procedure TForm1.RegCodeEditKeyPress(Sender: TObject; var Key: Char);
begin
    //showmessage(Tedit(Sender).Name);
    //if not(key in ['0'..'9',#8]) then Key:=#0;
    Key:=UpCase(Key);   //将字符转换为大写
    //UpperCase('asdfe'); //将给定的字符串转换为大写
end;

end.

⌨️ 快捷键说明

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