来电管理器服务程序 |
chen在2006/6/16发表,被浏览11180次
|
适合对象: “记得”来电显示管理器的二次开发。服务程序提供了Socket服务和查询函数,软件开发商可利用Socket服务或DLL提供的接口函数进行查询、获取来电信息。 服务程序使用及二次开发示意图
文件:(下载请到“会员下载”) cdTele.dll 来电号码查询动态库 TeleListen.exe 来电显示监听程序,适合于Windows98及以上的版本 TeleLC.exe 来电显示客户端监听程序,用于监听连接在其它计算机的来电显示,适合于Windows98及以上的版本 JD2000.exe 客户端的来电显示程序
说明: TeleListen.exe工作原理都相同:监听来电显示管理器,并把来电号码存放在来电池中;如果有Scoket的客户端连接,则当有来电时:(1)设置了自动发送来电,则向客户端发送来电号码和来电时间;(2)否则向客户端发送“call”,通知客户端已经有来电,客户端向服务程序发送“get”指令,获取来电号码。同时提供DLL的查询接口,其它程序也可通过函数查询和索取来电号码。 TeleLC.exe是运行在其它计算机的来电显示客户端监听程序,为没有安装来电显示管理器的计算机提供来电显示的二次开发(调用DLL函数)。 JD2000.exe分为单机版和网络版,单机版只能运行在连接了来电显示盒的计算机,用于即时显示来电客户信息;网络版是运行在没有安装来电显示盒的计算机上,使多台计算机同时显示来电客户信息。网络版的使用条件:局域网上有一台计算机连接了来电显示管理器,并在此计算机上运行了TeleListen.exe。 cdTele.dll是公用动态库,提供查询接口函数。
名词解释:来电池 来电池是指监听程序内的一个数组 [0..100],用来保存来电号码和来电时间。数组从0开始计数,把第1个来电号码保存在第0个数据单元,把第2个来电号码保存在第1个数据单元,如此类推。当取走来第1个来电号码(第0个数据单元)后,自动把第2个号码移位到第0个数据单元,如此类推。
TeleListen.exe使用方式 是一个执行文件,用来监听电话来电,并提供Socket和DLL调用服务。如果希望多台计算机同时显示来电客户信息,最好在连接来电显示盒的计算机上,把此文件放在系统的启动组中,或修改注册表来让系统自动运行。运行后在屏幕的左下脚有一个图标,可设置运行状态。
TeleLC.exe使用方式 是一个执行文件,用来监听网络上连接了来电显示管理器的计算机,为本机提供来电显示查询功能。只有使用DLL函数进行二次开发的程序才需要使用它。运行后在屏幕的左下脚有一个图标,可设置运行状态。
JD2000.exe使用方式 是一个执行文件,当有电话接入时自动显示来电号码及相应的用户信息。默认使用Access数据库保存来电记录,如果需要使用MS SQL Server保存来电信息,则需要自行安装SQL Server数据库平台。是一个免安装的绿色软件,分为单机版和网络版。 单机版运行在连接了来电显示盒的计算机上,不用再运行其它程序。 网络版运行在没有安装来电显示盒的计算机上,它通过监听服务器(安装了来电显示盒并运行了TeleListen.exe),实现多台计算机同时显示来电信息。使用网络版的JD2000,在第一次运行时,必须设置服务器的IP地址。
cdTele.dll使用方式 提供查询和获取来电号码的函数。 使用方法: 1 启动程序时调用OpenMapFile或StartTeleListen。 2 打开来电管理器COM端口:OpenComPort;如果服务程序状态设置为自动打开端口,则这一步可省略。 3 检查是否有来电:CountShareData;这一步不是必须的。 4 使用GetShareNo或GetShareData获取来电;可定时(例如每隔1秒)不断使用GetShareData(0)获取来电号码。也可定义回调函数DoTeleComing,在有来电时自动调用。 5 结束程序时调用CloseMapFile或StopTeleListen。 各函数功能如下: function OpenMapFile: LongBool; stdcall; //打开服务程序共享内存,如果使用DLL函数,建议在程序启动时调用 function CloseMapFile: LongBool; stdcall; //关闭服务程序共享内存,调用了OpenMapFile后,在程序结束时调用 //启动监听程序TeleListen.exe,一般放在程序启动时 function StartTeleListenEx(const Path: PChar; const Hide: Boolean=True): LongBool; stdcall; //或 function StartTeleListen(TeleComingProc: TOnTeleComing=nil; const Hide: Boolean=True): LongBool; stdcall; //回调函数类型,当有来电时自动调用,并返回来电号码no和来电时间t TOnTeleComing=procedure(var no: PChar; var t: PChar); stdcall; //关闭监听程序TeleListen.exe,一般用在关闭程序时 function StopTeleListen: LongBool; stdcall; function GetShareData(const i: Integer; var No: PChar; var T: TDateTime): LongBool; stdcall; 获取来电号码和来电时间。如果有来电,则返回True,否则返回False。获取来电后,删除监听程序内的来电池中的该来电号码。 i:获取来电池中的第i个来电号码,从0开始计数,0为最先来电; No:获取的来电号码; T:获取的来电时间。 function ReadShareData(const i: Integer; var No: PChar; var T: TDateTime): LongBool; stdcall; 获取来电号码和来电时间。如果有来电,则返回True,否则返回False。获取来电后,不删除来电池中的该来电号码。 function GetShareNo(const i: Integer): PChar; stdcall; 返回来电池中的第i个来电号码。获取来电后,删除来电池中的该来电号码。 function ReadShareNo(const i: Integer): PChar; stdcall; 返回来电池中的第i个来电号码。获取来电后,不删除来电池中的该来电号码。 function DelShareData(const i: Integer): LongBool; stdcall; 直接删除来电池中的第i个来电号码。 function ClearShareData: LongBool; stdcall; 直接删除来电池中的所有来电号码。 function CountShareData: Integer; stdcall; 返回来电池中有几个来电号码。 function GetComportState: LongBool; stdcall; 返回来电管理器的COM端口打开与否 function ReadComPort: Byte; stdcall; 返回连接来电管理器的COM端口号。1表示COM1,2表示COM2,如此类推 function GetSocketState: LongBool; stdcall; 返回监听服务程序的Socket服务是否打开 function ReadSocketPort: Byte; stdcall; 返回监听服务程序的Socket服务端口号 function OpenComport: LongBool; stdcall; 打开来电管理器的COM端口,并返回打开状态 function CloseComport: LongBool; stdcall; 关闭来电管理器的COM端口,并返回打开状态 function ChangeComport(const Port: Byte): LongBool; stdcall; 修改来电管理器的COM端口,并返回打开状态。1表示COM1,2表示COM2,如此类推 function OpenSocket: LongBool; stdcall; 打开TeleListen.exe的Socket服务,返回Socket服务状态 function CloseSocket: LongBool; stdcall; 关闭TeleListen.exe的Socket服务,返回Socket服务状态 function ChangeSocketPort(const Port: Integer): LongBool; stdcall; 修改TeleListen.exe的Socket服务端口,并返回打开状态 function DialTeleNo(No: PChar): LongBool; stdcall; 回拨电话,如果NO为空,则重拨 function ReadDialNo: PChar; stdcall; 返回上次拨出电话 function ShowTeleServerState: Integer; stdcall; 设置监听服务程序的运行状态 function ShowVer: LongBool; stdcall; 显示来电显示器的版本 ====以下函数适用于TeleLC.exe==== function ChangeSocketAddress(addr: PChar): LongBool; stdcall; 修改TeleLC.exe的连接来电显示管理器的服务器地址 function ReadSocketAddress: PChar; stdcall; 返回TeleLC.exe中的连接服务器地址
Socket服务 服务程序提供Socket服务(默认),最大可连接数为5,Socket默认端口为3825;可通过修改ini(状态设置)来禁止Socket服务和改变Socket端口号。 使用方法: 1 使用ClientSocket连接服务器。如果是本机,ClientSocket的IP地址设为127.0.0.1,端口设为3825。 2 与服务器建立连接后,如果有来电,服务器返回call n。n表示目前有第n个来电。 3 当有来电时,发送指令get到服务器,服务器返回来电号码。如果有多个来电(n>0),可多次使用get指令。 4 服务器响应get指令,返回来电号码。 5 退出程序时请关闭Socket连接。 通讯协议: 1. time 返回时间 2. open 打开来电显示管理器COM口,并返回打开状态。注:一般不需要特别地打开COM口,服务启动自动会打开COM口 3. close 来电显示管理器COM口,并返回状态。 4. set set port COM1 改变来电显示管理器COM口为COM1,并返回状态。修改COM口后,服务程序会记住修改,以后都使用新的COM口。 set SocketPort 3825 改变Socket服务端口为3825;修改服务端口后,需重新启动计算机。 5. 有来电时,服务自动发送信息到各客户端,例如“#38259081 2006-6-15 10:28:30”表示有一个来电,号码为38259081,时间为2006-6-15 10:28:30。 6. read 读取最新的来电号码,不删除服务程序内的来电池。 read n 读取第n个来电号码。n从0开始计数,n越大,表示越后的来电。 read all 读取来电池中的所有号码。从0开始读。 7. del 删除来电池中的第一个(n=0,最先来电)号码。 del n 删除来电池中的第n个来电号码,n减1。 del all 删除来电池中的所有号码,n=0。 8. get 读取来电池中的第一个(n=0,最先来电)号码,同时删除之。 get n 读取来电池中的第n个来电号码,同时删除之。 get all 读取并删除来电池中的所有号码,n=0。 get port 返回来电显示管理器的当前使用COM口,例如COM1。 get ver 返回来电显示管理器的版本。 9. count 返回服务程序的来电池目前有多少个来电号码。 10. dial dial xxxxxxxx 回拨电话xxxxxxxx。 dial 重拨。 10. conn 返回本Socket连接的顺序号。 conn count 返回服务程序目前有多少个Socket连接。 conn n 返回服务程序第n个Socket连接的客户端IP地址;n从0开始。
有不明之处可到留言板留言。
|
|
|
|