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

📄 unit2.~pas

📁 利用delphi编写的手机短信发送程序
💻 ~PAS
字号:
unit Unit2;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, AdPort;

    procedure init_pdu_mssage_0() ;
    function init_port_test_0 ( ApdComPort1: TApdComPort ) : boolean;

    procedure set_pdumsg_1 ( index: integer; data: string );
    procedure send_msg_first (ApdComPort1: TApdComPort);
    procedure send_msg_second (ApdComPort1: TApdComPort);
    procedure T_send ( ApdComPort1: TApdComPort; phone : string ; Msg : string );
    function  change_telcode ( s : string ) : string;

var
   g_pdu_Mssage : array [1..13] of string;
   t_pdu_mssage : array [1..13] of string;
   s_status : integer;
   rec_s : string = '';
   snd_s : string = '';
   

implementation

function Encode2 ( s:WideString ): String;
var
  i,len:Integer;
  cur:Integer;
  t:String;
begin
  Result:= '';
  len:=Length(s);
  i:=1;
  while i<=len do begin
    cur:=ord(s[i]);
    FmtStr(t, '%4.4X', [cur] );
    Result:=Result+t;
    inc(i);
  end;
end;

function  change_telcode ( s : string ) : string;
var
  i : integer;
  s1 : string ;
begin
  s := trim ( s );
  if length ( s ) = 11 then begin
    s := '86'+s;
  end;
  s := s + 'F';
  s1 := '              ';
  for i := 1 to length(s) do begin
    if odd ( i ) = true then begin
      s1[i] := s[i+1];
    end else begin
      s1[i] := s[i-1];
    end;
  end;
  result := s1;   
end;


procedure set_pdumsg_1 ( index: integer; data: string );
begin
  g_pdu_mssage[index] := data;
end;

procedure  init_pdu_mssage_0() ;
begin
  g_pdu_mssage[1] := '08';
  g_pdu_mssage[2] := '91';
  g_pdu_mssage[3] := '683108200305F0';
  g_pdu_mssage[4] := '11' ;
  g_pdu_mssage[5] := '00';
  g_pdu_mssage[6] := '0D';
  g_pdu_mssage[7] := '91';
  g_pdu_mssage[8] := '';
  g_pdu_mssage[9] := '00';
  g_pdu_mssage[10] := '08';
  g_pdu_mssage[11] := '00';
  g_pdu_mssage[12] := '';
  g_pdu_mssage[13] := ''; 
end;


function init_port_test_0 ( ApdComPort1: TApdComPort ): boolean;
begin
  ApdComPort1.Output := 'AT+CGMI' + #13;
  s_status := 1;
  result := true;
end;

procedure send_msg_first (ApdComPort1: TApdComPort);
var n : integer;
    s1 : string ;
begin
  n := length ( snd_s ) div 2 - 9 ;
  s1 := format ( '%x', [n] );  if n < 16 then s1 := '0' + s1;
  s1 := 'AT+CMGS='+ s1 + #13;
  ApdComPort1.Output := s1;
  s_status := 11;
end;

procedure send_msg_second (ApdComPort1: TApdComPort);
begin
  SLEEP ( 1000 );
  ApdComPort1.Output := snd_s + #26;
  s_status := 12;
end;

procedure T_send ( ApdComPort1: TApdComPort;  phone : string ; msg : String ); 
var t_s1, s0, s1 : string;
    n, i : integer;
begin
  s_status := 10;
  s0 := change_telcode ( phone );
  set_pdumsg_1 ( 8, s0 );
  t_s1 := Encode2 (  WideString ( msg ) );
  n := (length ( t_s1 ) div 2) ;
  s1 := format ( '%x', [n] );
  if length( t_s1 ) div 2 < 16 then s1 := '0' + s1;
  set_pdumsg_1 ( 12, s1 );
  set_pdumsg_1 ( 13, t_s1 ) ;
  snd_s := '';
  for i := 1 to 13 do begin
    snd_s := snd_s + g_pdu_mssage[i] ;
  end;
  send_msg_first (ApdComPort1);
end;


initialization
  init_pdu_mssage_0 () ;

end.

⌨️ 快捷键说明

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