广州高深商电子技术有限公司 用户登录
用户注册 ......
首页 公告 收款机 抽奖机 来电管理 数据采集 台球灯控 软件开发 综合 会员下载 发货查询
公司首页
当前位置:首页>> 来电管理>> 二次开发 >>正文
C++Builder使用Socket读取来电号码的示例
gao在2008/3/14发表,被浏览4593
为方便使用C++Builder开发来电显示的朋友,我们做了一个简单的例子供大家参考。在我们提供的下载包里有7个文件 和一个文件夹。

project1.bpr,  project1.cpp, project1.res 工程文件(3个文件)
unit1.cpp, unit1.dfm, unit1.h   C++Builder的源程序(3个文件)
project1.exe 编译好的可执行程序。

文件夹TeleListen 里包含来电号码监听服务程序的3个文件
TeleListen.exe   来电号码监听服务程序。
TeleListen.ini   来电号码监听服务程序的配置文件。
cdtele.dll       来电号码监听服务程序要用到的动态库。

在进行调试时 TeleListen.exe 应该与调试程序在同一台机,并且要正确配置TeleListen.exe与来电管理器的连接端口。

查询和获取来电信息的Socket的指令见“服务程序”一文。


下载C++Builder开发文档:点击下载CBSocket.rar

建立窗体如下:



C++Builder的源程序如下所示:
//本程序指定 Socket 的端口为 3825  主机为本机 127.0.0.1
//进行调试时请先运行TeleListen.exe

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  if (this->ClientSocket1->Active==false)
    this->ClientSocket1->Active=True;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  this->BitBtn2->Enabled=false;
  this->BitBtn1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  this->BitBtn2->Enabled=true;
  this->BitBtn1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
  AnsiString str;
  int i;

  str=Socket->ReceiveText();
  i=str.AnsiPos("\r");//是否有回车符
  if (i>0) str.Delete(i,1);
  i=str.AnsiPos("\n");//是否有换行符
  if (i>0) str.Delete(i,1);
  Memo1->Lines->Insert(0,str);

  if (str.Length()==0) return ;
  if (str[1]=='#')  //电话号码
  {
    i=str.AnsiPos(' ');
    if (i<3) return ;
    Edit1->Text=str.SubString(2,i-2);
    str.Delete(1,i);
    Edit2->Text=str.SubString(1,19);  //日期时间 yyyy-mm-dd hh:nn:ss
    Edit3->Text="";
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
  if (this->ClientSocket1->Active)
    this->ClientSocket1->Active=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
  BitBtn2Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Memo1->Lines->Clear();
  Edit1->Text="";
  Edit2->Text="";
  Edit3->Text="";
}
//---------------------------------------------------------------------------
【相关文章】
C++Builder使用S…
【同类文章】
高深商GSM无线固话盒OC…
WIFI接口来电显示管理器…
新一代USB转COM口来电…
来电管理器故障排除的方法
在WIN7或Win8中注册…
计算机收发短信的OCX控件…
使用Java开发来电显示管…
开发来电显示及录音程序的C…
C#来电显示管理器开发示例…
使用C#的Socket开发…

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

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