?? unit1.~pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Send: TButton;
Button2: TButton;
jshm: TEdit;
fsnr: TMemo;
GroupBox1: TGroupBox;
Label2: TLabel;
GroupBox2: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
jsnr: TMemo;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Button3: TButton;
cwxx: TMemo;
sqhm: TEdit;
Label8: TLabel;
Memo2: TMemo;
Device: TEdit;
Label9: TLabel;
Label10: TLabel;
Label7: TLabel;
Memo3: TMemo;
pb1: TProgressBar;
Label11: TLabel;
status1: TEdit;
Baud: TEdit;
Memo1: TMemo;
Button1: TButton;
Memo4: TMemo;
Button4: TButton;
sendState: TCheckBox;
isClear: TCheckBox;
procedure FormDestroy(Sender: TObject);
procedure SendClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{ 獲取短信貓授權(quán)機(jī)器碼}
function GSMModemAutoTest():PChar;
stdcall; external 'GSMMultiPort.dll' name 'GSMModemAutoTest';
{ 初始化gsm modem,并連接gsm modem}
function GSMModemInit(device:PChar;
baudrate:PChar;
initstring:PChar;
charset:PChar;
swHandshake:Boolean;
sn:PChar):Boolean;
stdcall; external 'GSMMultiPort.dll' name 'GSMModemInit';
{ 獲取短信貓授權(quán)機(jī)器碼}
function GSMModemGetSnInfo(device:PChar;
baudrate:PChar):PChar;
stdcall; external 'GSMMultiPort.dll' name 'GSMModemGetSnInfo';
{ 獲得錯誤信息}
function GSMModemGetErrorMsg(device:PChar):PChar;
stdcall; external 'GSMMultiPort.dll' name 'GSMModemGetErrorMsg';
{ 斷開連接并釋放內(nèi)存空間}
procedure GSMModemRelease(device:PChar)
stdcall; external 'GSMMultiPort.dll' name 'GSMModemRelease';
{ 連接狀態(tài)}
function GSMModemIsConn(device:PChar):Boolean;
stdcall; external 'GSMMultiPort.dll' name 'GSMModemIsConn';
{ 發(fā)送短信息}
function GSMModemSMSsend(device:PChar;
serviceCenterAddress:PChar;
encodeval:Integer;
text:PChar;
textlen:Integer;
phonenumber:PChar;
requestStatusReport:Boolean):Boolean;
stdcall; external 'GSMMultiPort.dll' name 'GSMModemSMSsend';
{ 接收短信息}
function GSMModemSMSReadAll(device:PChar;RD_opt:Integer):PChar;
stdcall; external 'GSMMultiPort.dll' name 'GSMModemSMSReadAll';
{$R *.dfm}
procedure TForm1.FormDestroy(Sender: TObject);
begin
end;
{ 發(fā)送短信}
procedure TForm1.SendClick(Sender: TObject);
var
smscontent: PChar;
number:PChar;
smslen: Integer;
begin
//0) 格式檢查
if jshm.Text = '' then
begin
showmessage('接收號碼不能為空!');
Exit;
end;
if fsnr.Text = '' then
begin
showmessage('發(fā)送內(nèi)容不能為空!');
Exit;
end;
//1)連接設(shè)備
status1.Text := '正在發(fā)送短信,請稍等 ......';
pb1.Position := 50;
//2) 發(fā)送短信
number :=PChar(jshm.Text);
smscontent := PChar(fsnr.Text);
smslen := Length(PChar(fsnr.Text));
if GSMModemSMSsend(PChar(Device.Text),nil,8,smscontent,smslen,number,sendState.Checked) = True then
showmessage('GSMModemSMSsend: 短信發(fā)送成功!')
else
begin
showmessage('GSMModemSMSsend: 短信發(fā)送失敗:' + GSMModemGetErrorMsg(PChar(Device.Text)));
Exit;
end;
//3) 顯示錯誤信息
cwxx.Text := GSMModemGetErrorMsg(PChar(Device.Text));
status1.Text := '發(fā)送短信完畢!';
pb1.Position := 100;
end;
{ 讀取短信}
procedure TForm1.Button2Click(Sender: TObject);
begin
status1.Text := '正在讀取短信,請稍等 ......';
pb1.Position := 50;
//2) 讀取短信
if isClear.Checked = True then
jsnr.Text := GSMModemSMSReadAll(PChar(Device.Text),0)
else
jsnr.Text := GSMModemSMSReadAll(PChar(Device.Text),1);
//3) 顯示錯誤信息
cwxx.Text := GSMModemGetErrorMsg(PChar(Device.Text));
status1.Text := '讀取短信完畢!';
pb1.Position := 100;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
cwxx.Text := GSMModemGetErrorMsg(PChar(Device.Text));
end;
{ 連接設(shè)備}
procedure TForm1.Button1Click(Sender: TObject);
begin
//1)檢查輸入?yún)?shù)
if Device.Text = '' then
begin
showmessage('請指定通訊端口!');
Device.SetFocus();
Exit;
end;
if Baud.Text = '' then
begin
showmessage('請指定通訊波特率!');
Baud.SetFocus();
Exit;
end;
if sqhm.Text = '' then
begin
showmessage('請輸入授權(quán)號碼!');
sqhm.SetFocus();
Exit;
end;
//2)連接設(shè)備
status1.Text := '正在連接設(shè)備,請稍等 ......';
pb1.Position := 50;
if GSMModemInit(PChar(Device.Text),PChar(Baud.Text),nil,nil,false,PChar(sqhm.Text)) = True then
showmessage('GSMModemInit: 連接成功!')
else
begin
showmessage('GSMModemInit: 連接失敗:' + GSMModemGetErrorMsg(PChar(Device.Text)));
end;
//3)顯示信息
cwxx.Text := GSMModemGetErrorMsg(PChar(Device.Text));
status1.Text := '連接完畢!';
pb1.Position := 100;
end;
{ 退出}
procedure TForm1.Button4Click(Sender: TObject);
begin
self.Close;
end;
{ 關(guān)閉的時候釋放資源}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if GSMModemIsConn(PChar(Device.Text)) = True then
GSMModemRelease(PChar(Device.Text))
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -