📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Send: TButton;
Button2: TButton;
jshm: TEdit;
fsnr: TMemo;
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
GroupBox2: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
jsnr: TMemo;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Button3: TButton;
jqhm: TEdit;
cwxx: TMemo;
Button4: TButton;
sqhm: TEdit;
Label8: TLabel;
Memo1: TMemo;
Memo2: TMemo;
Device: TEdit;
Baud: TEdit;
Label9: TLabel;
Label10: TLabel;
Memo3: TMemo;
Memo4: TMemo;
Memo5: TMemo;
procedure Button4Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SendClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{ 初始化gsm modem,并连接gsm modem}
function GSMModemInitNew(device:PChar;
baudrate:PChar;
initstring:PChar;
charset:PChar;
swHandshake:Boolean;
sn:PChar):Boolean;
stdcall; external 'dllforvc.dll' name 'GSMModemInitNew';
{ 获取短信猫授权机器码}
function GSMModemGetSnInfoNew(device:PChar;
baudrate:PChar):PChar;
stdcall; external 'dllforvc.dll' name 'GSMModemGetSnInfoNew';
{ 获取当前通讯端口}
function GSMModemGetDevice():PChar;
stdcall; external 'dllforvc.dll' name 'GSMModemGetDevice';
{ 获取当前通讯波特率}
function GSMModemGetBaudrate():PChar;
stdcall; external 'dllforvc.dll' name 'GSMModemGetBaudrate';
{ 获得错误信息}
function GSMModemGetErrorMsg():PChar;
stdcall; external 'dllforvc.dll' name 'GSMModemGetErrorMsg';
{ 断开连接并释放内存空间}
procedure GSMModemRelease()
stdcall; external 'dllforvc.dll' name 'GSMModemRelease';
{ 连接状态}
function GSMModemIsConn():Boolean;
stdcall; external 'dllforvc.dll' name 'GSMModemIsConn';
{ 发送短信息}
function GSMModemSMSsend(serviceCenterAddress:PChar;
encodeval:Integer;
text:PChar;
textlen:Integer;
phonenumber:PChar;
requestStatusReport:Boolean):Boolean;
stdcall; external 'dllforvc.dll' name 'GSMModemSMSsend';
{ 接收短信息返回字符串格式为:手机号码|短信内容||手机号码|短信内容||}
function GSMModemSMSReadAll(RD_opt:Integer):PChar;
stdcall; external 'dllforvc.dll' name 'GSMModemSMSReadAll';
{$R *.dfm}
procedure TForm1.Button4Click(Sender: TObject);
begin
jqhm.Text := GSMModemGetSnInfoNew(PChar(Device.Text),PChar(Baud.Text));
Device.Text := GSMModemGetDevice();
Baud.Text := GSMModemGetBaudrate();
cwxx.Text := GSMModemGetErrorMsg();
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if GSMModemIsConn() = true then
GSMModemRelease();
end;
procedure TForm1.SendClick(Sender: TObject);
var
smscontent: PChar;
number:PChar;
smslen: Integer;
begin
//0) 格式检查
if jshm.Text = '' then
begin
showmessage('接收号码不能为空!');
Exit;
end;
smslen := Length(PChar(jshm.Text));
//if smslen <> 11 then
//begin
// showmessage('接收号码的长度不对,必须为11位数字!');
// Exit;
//end;
if fsnr.Text = '' then
begin
showmessage('发送内容不能为空!');
Exit;
end;
//1)连接设备
if GSMModemInitNew(PChar(Device.Text),PChar(Baud.Text),nil,nil,false,PChar(sqhm.Text)) = True then
showmessage('GSMModemInit: 连接成功!')
else
begin
showmessage('GSMModemInit: 连接失败:' + GSMModemGetErrorMsg());
Exit;
end;
Device.Text := GSMModemGetDevice();
Baud.Text := GSMModemGetBaudrate();
//2) 发送短信
number :=PChar(jshm.Text);
smscontent := PChar(fsnr.Text);
smslen := Length(PChar(fsnr.Text));
if GSMModemSMSsend(nil,8,smscontent,smslen,number,false) = True then
showmessage('GSMModemSMSsend: 短信发送成功!')
else
begin
showmessage('GSMModemSMSsend: 短信发送失败:' + GSMModemGetErrorMsg());
Exit;
end;
//3) 显示错误信息
cwxx.Text := GSMModemGetErrorMsg();
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//1)连接设备
if GSMModemInitNew(PChar(Device.Text),PChar(Baud.Text),nil,nil,false,PChar(sqhm.Text)) = True then
showmessage('GSMModemInit: 连接成功!')
else
begin
showmessage('GSMModemInit: 连接失败:' + GSMModemGetErrorMsg());
Exit;
end;
Device.Text := GSMModemGetDevice();
Baud.Text := GSMModemGetBaudrate();
//2) 读取短信
jsnr.Text := GSMModemSMSReadAll(1);
//3) 显示错误信息
cwxx.Text := GSMModemGetErrorMsg();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -