广州高深商电子技术有限公司 用户登录
                                                      用户注册 ......
                                                      首页 公告 收款机 抽奖机 来电管理 数据采集 台球灯控 软件开发 综合 会员下载 发货查询
                                                      公司首页
                                                      当前位置:首页>> 来电管理>> 二次开发 >>正文
                                                      来电管理设备的ActiveX控件(OCX)开发文档
                                                      pgr在2017/7/3发表,被浏览13832 此文章共有 2 1 2
                                                      前述
                                                          本控件是专门为高深商公司的"记得"系电脑来电管理器而设计,它适用JD-2000全系列的设备包括
                                                          来电显示产品 JD-2000U  JD-2000C   JD-2002U  JD-2002C  JD-2004U  JD-2004C
                                                          电话回拨产品 JD-2100U  JD-2100C   JD-2102U  JD-2102C  JD-2104U  JD-2104C
                                                          电话录音产品 JD-2300U  JD-2300C   JD-2302U  JD-2304U
                                                          录音回拨产品 JD-2500U  JD-2500C   JD-2502U  JD-2504U
                                                          电话语音产品 JD-2600U  JD-2600C   JD-2602U  JD-2604U

                                                          使用本控件你可以避免与硬件设备打交道,在你的应用系统中只要寥寥数行的代码即可将有关来电弹屏、自动拨号、电话录音、自动语音应答、黑名单的功能集成到你的系统里。


                                                      控件的名称            
                                                         JDComPort.ocx
                                                         需要的文件 qtintf.dll

                                                      下载控件包: JDComPort.rar

                                                      注册控件

                                                      在Win7 和Win8,win10中 注册OCX控件的关键是要以管理员身份进行操作,具体的方法如下:

                                                      1、将OCX文件存复制到Windows目录  
                                                         在64位系统下是:C:\Windows\Syswow64
                                                         在32位系统下是:C:\Windows\System32

                                                      2、注册:“运行”对话框中输入引号内命令: RegSvr32 XXX.OCX

                                                      3、卸载:“运行”对话框中输入引号内命令:RegSvr32 XXX.OCX /U"

                                                      4、如果注册时出现对DllRegisterServer的调用失败,则选择开始菜单->附件->“命令提示符”->右键,选择“以管理员身份运行”,然后在打开的窗口中,执行RegSvr32 XXX.OCX命令即可。

                                                      例如注册 我们的来电管理控件 JDComport.OCX 时可以用以下的手工方法实现

                                                      第一步:
                                                           将文件 JDComport.OCX 和 qtintf.dll (会被JDComport.OCX 用到) 复制到文件夹
                                                            c:\windows\System32 或者64位系统的C:\Windows\Syswow64 目录

                                                      第二步:
                                                          win7:    开始->所有程序->附件->CMD 命令
                                                          win8:    鼠标移到桌面右上角->搜索->CMD 命令->屏幕左上方提示"命令提示符"->鼠标右
                                                                   键->以管理员身份运行

                                                      第三步:
                                                         在DOS命令窗口 进入 c:\windows\System32目录
                                                         在提示符c:\windows\System32> RegSvr32 JDComport.ocx
                                                         或
                                                         c:\windows\System32> RegSvr32 C:\Windows\Syswow64\JDComport.ocx
                                                         即可完成注册

                                                      使用前的准备
                                                          如果是USB接口的设备请确保驱动程序已经安装,如果你没有驱动程序,可以用以下链接下载:
                                                      绿色指示灯设备驱动USB_To_COM32_DRIVER.zip
                                                      红色指示灯设备驱动USBDRIVE.rar

                                                      使用方法

                                                      一、OCX控件的GUID:
                                                          GUID={C4751F74-C039-4272-8532-11F7ACBAD184}

                                                      二、控件的属性
                                                      1、    port:  widestring

                                                              来电设备与电脑连接的端口 字符串型 如"COM1"、"COM2"、"COM3"、"COM4"、"COM5" ....
                                                      3、    baudrate:  

                                                              波特率只3种选择 br9600, br115200, br460800

                                                          以上2个属性一般不用设定,在我们的控件里有一个方法查找设备(SetupPorts),可以把连接到电脑的设备找到,而且可以把找到的参数自动保存下来,以后再调用时会自动装入

                                                      3、    connected: Boolean

                                                              设备是否打开 如果打开返回 True  否则 False
                                                              本属性是只读的


                                                      三、函数与方法:
                                                      1、 procedure Open
                                                        
                                                          作用:打开设备
                                                          说明:此函数是其他函数与方法调用的前提,用来打开与电脑连接的设备,只有在设备被打开后才可以进行其他的操作。
                                                          参数:无
                                                          
                                                          其它关联事项:判断一个设备是否打开可以用属性 connected 如果为TRUE则已经打开;多次打开不影响设备的相关操作。
                                                        

                                                      2、procedure Close

                                                          作用:关闭设备
                                                          说明:用来断开电脑与设备的连接。在退出程序前应关闭设备
                                                          参数:无。

                                                      3、function SetupPorts: WideString;

                                                          说明:查找设备,查找与电脑连接的设备
                                                          参数:无
                                                          返回值:取消查找或找不到设备返回空串。找到设备"Ports=AAAA    BaudRate=BBBB"
                                                            其中AAAA是串口的列表 如COM2,COM4 它们之间用逗号分开
                                                                BBBB是串口的波特率代号 如7,13,它们之间用逗号分开(7=br9600  13=br115200 0=不如60800)
                                                        
                                                          注:找到设备时 AAAA 与 BBBB会被自动保存到与应用程序同名的ini文件中,在下次被调用时自动调入。

                                                      4、procedure SetSate;

                                                          说明:用来设定系统状态字
                                                          参数:无
                                                          返回值:无
                                                          注:状态字被自动保存到与应用程序同名的ini文件中,在下次被调用时自动调入。


                                                      5、function StartWaveIn(chanl: Integer; const WaveFile: WideString): WideString;

                                                          说明:强制录音开始
                                                          参数:chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于双口设备chanl的值有    0 、1、2、3
                                                                WaveFile:录音文件的文件名,如果文件名是个空字符串,则系统会自动生成文件名,如果是合法的文件名,则系统会以给出的文件名生产录音文件

                                                          返回值:实际的录音文件名。如果文件名是空的则表示不能进行录音。如果已经开始录音了则返回实际的录音文件名。
                                                          注:在一般情况下,不用调用本函数。在默认的情况下,控件会进行自动录音如果是打进的电话,摘机后1秒开始自动录音。打出的电话在播出3个电话号码后的6秒开始录音,在录音开始时会有事件发生。
                                                          在未摘机的情况下,本函数失效。
                                                          本函数适用 JD-230X JD-250X JD-260X 系列产品


                                                      6、procedure StopWaveIn(chanl: Integer);

                                                          说明:停止通道chanl的录音
                                                          参数:chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于双口设备chanl的值有    0 、1、2、3

                                                      7、procedure SetHandUp(isHandup: Integer; chanl: Integer);

                                                          说明:设定通道chanl摘机或挂机
                                                          参数:isHandup: 摘机或挂机 1--摘机   0--挂机
                                                                chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于双口设备chanl的值有    0 、1、2、3
                                                          注:本过程只适用于JD-250X和JD-260X系列的产品

                                                      8、procedure PlayWaveFile(WaveFile: WideString; chanl: Integer);

                                                          说明:在指定通道按文件播放语音
                                                          参数:WaveFile: 录音文件 数据格式为 8位数据 1通道 采样率4800/秒
                                                                chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于双口设备chanl的值有    0 、1、2、3
                                                          注:本过程只JD-260X系列的产品


                                                      9、procedure PlayWaveByte(wavebyte: Smallint; chanl: Integer);

                                                          说明:在指定通道按字节播放语音
                                                          参数:wavebyte: 语音的采样值 数据格式为 8位数据 1通道 采样率4800/秒
                                                                chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于双口设备chanl的值有    0 、1、2、3
                                                          注:本过程只JD-260X系列的产品

                                                      10、procedure PlayWaveData(WData: OleVariant; chanl: Integer);

                                                          说明:在指定通道按字节流播放语音
                                                          参数:WData: 语音的采样流 数据格式为 8位数据 1通道 采样率4800/秒
                                                                chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于双口设备chanl的值有    0 、1、2、3
                                                          注:本过程只JD-260X系列的产品

                                                      11、procedure playWaveabort(chanl: Integer);

                                                          说明:在指定通道停止播放语音数据
                                                          参数:chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于双口设备chanl的值有    0 、1、2、3
                                                          注:本过程只JD-260X系列的产品

                                                      12、function ReadFactryID: WideString;

                                                          说明:  读取设备生产厂商的ID
                                                          返回值:厂商的ID

                                                      13、function ReadDevID: Integer;

                                                          说明:  读取来电管理设备的设备号
                                                          返回值:设备号

                                                      14、function ReadDevVer: WideString;

                                                          说明:  读取来电管理设备的型号和软件版本
                                                          返回值:设备的型号和软件版本

                                                      15、function LineStatus(chanl: Integer): Integer;

                                                          说明:  通道的线路状态
                                                          参数:chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于双口设备chanl的值有    0 、1、2、3
                                                          返回值:线路状态  0--摘机  255--挂机


                                                      16、function DialupChanl(const TeleNo: WideString; chanl: Integer): Integer;

                                                          说明:回拨电话
                                                          参数:TeleNo:电话号码
                                                               chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于四口设备chanl的值有    0 、1、2、3
                                                          返回值:没有意义
                                                          注:电话号码的长度不要超过16个字节,超过16字节的建议一个一个地拨号,2个号码之间的延时要大于200ms

                                                          对于要拨“0” 或 “9”才能拨外线的用户,可以先调用本命令拨“0” 等待一段时间后再拨后面要拨出的号码。
                                                          如在通道0 拨 0,38259081 可以使用以下过程
                                                             1、 DialupChanl('0',0)
                                                             2、 延时 (不能超过10秒,否则在此期间要发出摘机命令)
                                                             3、 DialupChanl('38259081',0)

                                                      17、function WavePath: WideString;

                                                          说明:保存录音文件的路径
                                                          参数:无
                                                          要设定本参数可以在SetSate中设定 或在JD2000OCX.INI中直接修改


                                                      18、function SelectDev(const Devid: WideString): Integer;

                                                          说明:选择当前设备
                                                          参数:Devid:设备所在的端口 如"COM1"  "COM2" ..."COM8"
                                                          返回值: -1 指定端口的设备不存在。
                                                                  0  指定端口的设备存在,并将当前设备设为指定端口的设备,对设备的操作为对这个设备的操作。
                                                          本函数用于一台电脑接有多个来电管理器的情形。


                                                      19、function CurDev: WideString;

                                                          说明:返回当前设备
                                                          参数:无
                                                          返回值: 当前设备的端口 如 COM1 或 COM5等

                                                      20、function PlayingWave(chanl: Integer): WordBool;

                                                          说明:指定通道是否正在播音
                                                          参数:chanl:通道号 通道1-4 的chanl值为0-3,
                                                                对于单口设备chanl的值永远是0
                                                                对于双口设备chanl的值只有  0 、1
                                                                对于四口设备chanl的值有    0 、1、2、3
                                                          返回值: 当前通道是否正在播音 TRUE--正在播音 FALSE--不播音

                                                      四、事件与消息


                                                      1、 procedure OnRead(const s: WideString; t: Double; const devid: WideString; const WaveFile: WideString)

                                                          说明:当有来电显示或开始录音时,会产生这个事件。
                                                          参数:   s: 来电或拨出的电话号码
                                                                   t: 发送来电或开始录音的时间 实际是个Date数据类型
                                                               devid:设备号每一条线路对应一个设备号如"2-1"和"1-1"分别表示COM2口的第1条线和COM1口的第1条线
                                                            WaveFile:录音文件的文件名,如果你不进行录音或你的设备没有录音功能的,可以忽略本参数

                                                      2、 procedure OnKeyPress(const key: WideString; const devid: WideString);

                                                          说明:当检测到有DTMF按键(电话按键)、电话振铃、摘机或挂机时,会产生这个事件。
                                                          参数:   key: 电话按键或电话振铃、摘机或挂机
                                                                        key="R"、"T"、"H" 分表代表电话振铃、摘机和挂机
                                                                        key="0"、"1"、"2"、"3"...."9"、"*"、"#" 分表代表电话机的对应按键被按下
                                                               devid:设备号每一条线路对应一个设备号如"2-1"和"1-1"分别表示COM2口的第1条线和COM1口的第1条线

                                                      3、 procedure OnOpen;
                                                          
                                                          一次成功的Open过程会触发一次OnOpen事件

                                                      4、 procedure OnClose;

                                                          一次成功的Close过程会触发一次OnClose事件


                                                      5、 procedure OnWaveIn(wavestring: OleVariant; Count: Integer; const devid: WideString);

                                                          说明:当有录音数据被获取时,会产生这个事件。
                                                          参数:wavestring:
                                                                      录音数据,是Byte数组;8位数据 1通道 采样率4800/秒
                                                               Count: 数据的长度以Byte计
                                                               devid:设备号每一条线路对应一个设备号如"2-1"和"1-1"分别表示COM2口的第1条线和COM1口的第1条线
                                                          注:事件主要用于实时监听和用作语音网关

                                                      6、 procedure OnStartRecord(const devid, FileNam

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

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

                                                      彩神Ⅴll