广州高深商电子技术有限公司 用户登录
用户注册 ......
首页 公告 收款机 抽奖机 来电管理 数据采集 台球灯控 软件开发 综合 会员下载 发货查询
公司首页
当前位置:首页>> 来电管理>> 下载 >>正文
电脑收发短信(手机盒)OCX控件下载
chen在2011/3/12发表,被浏览10109 此文章共有 2 1 2
控件名称:JDCellPhoneXC.OCX,点击下载
控件功能:把计算机当成手机,用电脑接收、发送手机短信,拨打、接听电话。
控件说明:标准的ActiveX控件,提供收发短信、打电话等功能;当收到短信、电话呼入时,自动触发事件,方便二次开发。如有需要,也可提供Delphi控件。本控件需要能与计算机COM口通信的手机或高深商公司研发的手机盒设备。

Delphi使用示例程序:


源代码:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, JDCellPhoneXC_TLB, Spin, StdCtrls, mmSystem, ComCtrls,
  Buttons;

type
  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    Button4: TButton;
    Button3: TButton;
    CheckBox1: TCheckBox;
    SendSMS: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    About: TButton;
    Button10: TButton;
    Button11: TButton;
    SpinEdit1: TSpinEdit;
    Label1: TLabel;
    ProgressBar1: TProgressBar;
    SpeedButton1: TSpeedButton;
    JD: TJDCellPhoneX;
    Button12: TButton;
    Button14: TButton;
    Button15: TButton;
    Button13: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure SendSMSClick(Sender: TObject);
    procedure AboutClick(Sender: TObject);
    procedure JDAfterOpen(Sender: TObject);
    procedure JDAfterClose(Sender: TObject);
    procedure JDEndRing(Sender: TObject; devid: Smallint);
    procedure JDRing(Sender: TObject; const no: WideString;
      index, devid: Smallint);
    procedure JDSms(Sender: TObject; const id: WideString;
      devid: Smallint);
    procedure JDJDSms(Sender: TObject; const id, no, t, s: WideString;
      devid: Smallint);
    procedure SpeedButton1Click(Sender: TObject);
    procedure JDNoCarrier(Sender: TObject; const str: WideString;
      devid: Smallint);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

//程序启动时设置手机盒连接参数;如果计算机连接了多个盒,设置各个盒的devid
procedure TForm2.FormCreate(Sender: TObject);
begin
  Memo1.Clear;
  JD.LoadComportParam;  //调用手机盒与计算机连接的参数,在设置(Setup)时保存的
  if JD.GetComportCount>1 then  //查询有几个手机盒与计算机连接
    SpinEdit1.MaxValue:=JD.GetComportCount-1  //设置可用的手机盒devid
  else
    SpinEdit1.Enabled:=False;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  JD.Open;  //打开通讯端口
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  JD.Close; //关闭通讯端口
end;

//设置手机盒与计算机连接的端口,可以自动查找端口。一般在第一次使用时调用
procedure TForm2.Button3Click(Sender: TObject);
begin
  //设置手机盒与计算机连接端口的函数,参数ShowForm:
  //True表示显示查找窗体,False表示不显示查找窗体;
  //属性值OnlyCheckUSBtoSerialComport默认值为True,表示在查找端口时只找USB转Com的端口
  if JD.SetupPort(False) then begin
    JD.Open;                  //设置后打开连接
    Memo1.Lines.Add(JD.InitSIM300); //对手机盒初始化
    { 以下程序可以不要
    Memo1.Lines.Add('厂商ID:'+JD.getmi(0));
    Memo1.Lines.Add('模块型号:'+JD.getmm(0));
    Memo1.Lines.Add('模块系列号:'+JD.getsn(0));
    Memo1.Lines.Add('软件版本号:'+JD.getmr(0));
    Memo1.Lines.Add('电话功能:'+JD.getcfun(0));
    Memo1.Lines.Add('信号强度:'+JD.getcsq(0));
    Memo1.Lines.Add('短信中心号码:'+JD.getcsca(0));
    Memo1.Lines.Add('网络运营商:'+JD.getcops(0));
    Memo1.Lines.Add('当前使用的麦克风通道:'+JD.getcmic(0));
    Memo1.Lines.Add('听筒音量:'+JD.getclvl(0));
    Memo1.Lines.Add('铃声音量:'+JD.getcrsl(0)+' (范围为0-100)' );
    Memo1.Lines.Add('设置短信模式为PDU 模式:'+JD.setcmgf(0));
    Memo1.Lines.Add('设置新信息提醒(有消息来将会通过串口发出提醒):'+JD.setcnmi(0));
    Memo1.Lines.Add('设置来电显示号码:'+JD.setclip(0));
    //以下是GPRS初始化相关内容
    Memo1.Lines.Add('设置GPRS收到数据输出时包含IPD头:'+JD.setciphead(0));
    Memo1.Lines.Add('查询GPRS和TCP和UDP端口:'+JD.getclport(0));
    Memo1.Lines.Add('设置不固定本地端口:'+JD.setcipflp(0));
    Memo1.Lines.Add('查询是IP访问还是域名访问(1-域名 0-IP):'+JD.getcdnsorip(0));
    Memo1.Lines.Add('查询是否作服务器监听连接(0-否 1-是):'+JD.getcipserver(0));
    Memo1.Lines.Add('查询当前GPRS接入(0-cmwap 1-cmnet):'+JD.getcipcsgp(0));
    Memo1.Lines.Add('查询当前GPRS连接状态:'+JD.getcipstatus(0));
    }
  end;
end;

//按短信ID读短信内容
procedure TForm2.Button4Click(Sender: TObject);
var
  n: Integer;
  id, no, t, s: WideString;
begin
  id:=WideString(Edit1.Text);
  //当读超长短信时,ReadSms函数读短信的方式
  //0-一般用于收到短信事件OnSms中;在读超长短信时,只有当id为最后一条短信id,才完整读超长短信
  //1-常用的读短信方式;当遇到超长短信时,首先计算此超长短信第一条id,按顺序读,当不成功时,读所有短信
  //2-只有是超长短信,首先把SIM卡内的所有短信都读出来,拼接此条超长短信
  //建议在OnSms事件中设为0,其它时候读短信时设为1
  JD.ReadLongSmsWay:=1;
  //按id读短信的函数,no为发送号码,t为发送时间,s为短信内容
  //最后一个参数表示从哪个手机盒读短信;当只有一个手机盒与计算机连接时,赋0
  //SpinEdit1.Value表示devid值
  n:=JD.ReadSms(id, no, t, s, SpinEdit1.Value);
  if n>0 then
  begin
    Memo1.Lines.Add('Read SMS'+IntToStr(SpinEdit1.Value)+' Count='+IntToStr(n));
    Memo1.Lines.Add('id='+id+'  no='+no+'  t='+t);
    Memo1.Lines.Add(s);                   //显示短信内容
    if CheckBox1.Checked then
      if JD.DeleteSms(id, SpinEdit1.Value) then         //按ID删除短信的函数
        Memo1.Lines.Add('删除短信 id='+id);
  end
  else if n=-1 then begin
      Memo1.Lines.Add('id='+id+'  no='+no+'  t='+t);
      Memo1.Lines.Add(s);                   //显示短信内容
      Memo1.Lines.Add(JD.GetEroroCode(SpinEdit1.Value));  //读短信错误时,返回错误代码
  end
  else Memo1.Lines.Add('读短信失败 id='+id);
end;

//拨号,Edit1.Text为拨出号码
procedure TForm2.Button5Click(Sender: TObject);
begin
  JD.ShowWaiting('拨打电话', '正在拨打电话:'+Edit1.Text, 6000);
  if JD.DoDial(Edit1.Text, SpinEdit1.Value) then
    Memo1.Lines.Add('拨号: '+Edit1.Text)
  else
    Memo1.Lines.Add(JD.GetEroroCode(SpinEdit1.Value));
  Button10.Enabled:=JD.AllowSendDTMF(SpinEdit1.Value);
end;

//接听电话,摘机
procedure TForm2.Button6Click(Sender: TObject);
begin
  if JD.DoAnswer(SpinEdit1.Value) then    //接听电话函数,SpinEdit1.Value为手机盒连接序号(devid)
    Memo1.Lines.Add('接听电话');
  Button10.Enabled:=JD.AllowSendDTMF(SpinEdit1.Value);
end;

//挂断电话,挂机
procedure TForm2.Button7Click(Sender: TObject);
begin
  JD.CloseWaiting;
  if JD.DoHold(SpinEdit1.Value) then    //挂断电话
    Memo1.Lines.Add('挂机');
  Button10.Enabled:=JD.AllowSendDTMF(SpinEdit1.Value);
end;

//设置手机盒铃声等参数
procedure TForm2.Button8Click(Sender: TObject);
begin
  if JD.SIM300Setup(SpinEdit1.Value) then
    Memo1.Lines.Add('设置SIM300');
end;

//读取SIM卡内所有短信内容
procedure TForm2.Button9Click(Sender: TObject);
var
  n: SmallInt;
  ss: WideString;
begin
  n:=JD.ReadAllSms(ss, SpinEdit1.Value);  //读取所有短信函数,返回短信数量
  Memo1.Lines.Add('SIM'+IntToStr(SpinEdit1.Value)+' 共有短信条数:'+IntToStr(n));
  Memo1.Lines.Add(ss);
end;

//发送AT指令,返回手机盒响应内容。True表示AT指令有多行返回内容
procedure TForm2.Button10Click(Sender: TObject);
var
  s: string;
begin
  if JD.AllowSendDTMF(SpinEdit1.Value) then
  begin
    if InputQuery('通话应答', '请输入要发送的拨号音', s) then
      if JD.SendDTMF(s, SpinEdit1.Value) then
        Memo1.Lines.Add('发送拨号音: '+s);
  end;
end;

//ShowRxChar属性表示是否显示与手机盒通讯的信息流,主要用于测试
procedure TForm2.Button11Click(Sender: TObject);
begin
  JD.ShowRxChar:=not JD.ShowRxChar;
  if JD.ShowRxChar
    then Button11.Caption:='Hide RxChar'
    else Button11.Caption:='Show RxChar';
end;

//发送短信
procedure TForm2.SendSMSClick(Sender: TObject);
var
  s: WideString;
begin
  //发送短信函数
  //发送号码为Edit1.Text,内容为Memo1.Lines.Text,SpinEdit1.Value为手机盒连接序号(devid)
  //函数返回发送号码
  s:=JD.SendSms(WideString(Edit1.Text), W

广州高深商电子技术有限公司

地址:天河北路908号、高科大厦B座2704
电话:020-38259081、38258857
电子邮箱:gaoykosen@foxmail.com