前述 本控件是專門為高深商公司的"記得"系電腦來電管理器而設(shè)計,它適用JD-2000全系列的設(shè)備包括 來電顯示產(chǎn)品 JD-2000U JD-2000C JD-2002U JD-2002C JD-2004U JD-2004C 電話回撥產(chǎn)品 JD-2100U JD-2100C JD-2102U JD-2102C JD-2104U JD-2104C 電話錄音產(chǎn)品 JD-2300U JD-2300C JD-2302U JD-2304U 錄音回撥產(chǎn)品 JD-2500U JD-2500C JD-2502U JD-2504U 電話語音產(chǎn)品 JD-2600U JD-2600C JD-2602U JD-2604U 使用本控件你可以避免與硬件設(shè)備打交道,在你的應(yīng)用系統(tǒng)中只要寥寥數(shù)行的代碼即可將有關(guān)來電彈屏、自動撥號、電話錄音、自動語音應(yīng)答、黑名單的功能集成到你的系統(tǒng)里。 控件的名稱 JDComPort.ocx 需要的文件 qtintf.dll 下載控件包: JDComPort.rar 注冊控件 在Win7 和Win8,win10中 注冊O(shè)CX控件的關(guān)鍵是要以管理員身份進行操作,具體的方法如下: 1、將OCX文件存復(fù)制到Windows目錄 在64位系統(tǒng)下是:C:\Windows\Syswow64 在32位系統(tǒng)下是:C:\Windows\System32 2、注冊:“運行”對話框中輸入引號內(nèi)命令: RegSvr32 XXX.OCX 3、卸載:“運行”對話框中輸入引號內(nèi)命令:RegSvr32 XXX.OCX /U" 4、如果注冊時出現(xiàn)對DllRegisterServer的調(diào)用失敗,則選擇開始菜單->附件->“命令提示符”->右鍵,選擇“以管理員身份運行”,然后在打開的窗口中,執(zhí)行RegSvr32 XXX.OCX命令即可。 例如注冊 我們的來電管理控件 JDComport.OCX 時可以用以下的手工方法實現(xiàn) 第一步: 將文件 JDComport.OCX 和 qtintf.dll (會被JDComport.OCX 用到) 復(fù)制到文件夾 c:\windows\System32 或者64位系統(tǒng)的C:\Windows\Syswow64 目錄 第二步: win7: 開始->所有程序->附件->CMD 命令 win8: 鼠標(biāo)移到桌面右上角->搜索->CMD 命令->屏幕左上方提示"命令提示符"->鼠標(biāo)右 鍵->以管理員身份運行 第三步: 在DOS命令窗口 進入 c:\windows\System32目錄 在提示符c:\windows\System32> RegSvr32 JDComport.ocx 或 c:\windows\System32> RegSvr32 C:\Windows\Syswow64\JDComport.ocx 即可完成注冊 使用前的準(zhǔn)備 如果是USB接口的設(shè)備請確保驅(qū)動程序已經(jīng)安裝,如果你沒有驅(qū)動程序,可以用以下鏈接下載: 綠色指示燈設(shè)備驅(qū)動USB_To_COM32_DRIVER.zip 紅色指示燈設(shè)備驅(qū)動USBDRIVE.rar 使用方法 一、OCX控件的GUID: GUID={C4751F74-C039-4272-8532-11F7ACBAD184} 二、控件的屬性 1、 port: widestring 來電設(shè)備與電腦連接的端口 字符串型 如"COM1"、"COM2"、"COM3"、"COM4"、"COM5" .... 3、 baudrate: 波特率只3種選擇 br9600, br115200, br460800 以上2個屬性一般不用設(shè)定,在我們的控件里有一個方法查找設(shè)備(SetupPorts),可以把連接到電腦的設(shè)備找到,而且可以把找到的參數(shù)自動保存下來,以后再調(diào)用時會自動裝入 3、 connected: Boolean 設(shè)備是否打開 如果打開返回 True 否則 False 本屬性是只讀的 三、函數(shù)與方法: 1、 procedure Open 作用:打開設(shè)備 說明:此函數(shù)是其他函數(shù)與方法調(diào)用的前提,用來打開與電腦連接的設(shè)備,只有在設(shè)備被打開后才可以進行其他的操作。 參數(shù):無 其它關(guān)聯(lián)事項:判斷一個設(shè)備是否打開可以用屬性 connected 如果為TRUE則已經(jīng)打開;多次打開不影響設(shè)備的相關(guān)操作。 2、procedure Close 作用:關(guān)閉設(shè)備 說明:用來斷開電腦與設(shè)備的連接。在退出程序前應(yīng)關(guān)閉設(shè)備 參數(shù):無。 3、function SetupPorts: WideString; 說明:查找設(shè)備,查找與電腦連接的設(shè)備 參數(shù):無 返回值:取消查找或找不到設(shè)備返回空串。找到設(shè)備"Ports=AAAA BaudRate=BBBB" 其中AAAA是串口的列表 如COM2,COM4 它們之間用逗號分開 BBBB是串口的波特率代號 如7,13,它們之間用逗號分開(7=br9600 13=br115200 0=不如60800) 注:找到設(shè)備時 AAAA 與 BBBB會被自動保存到與應(yīng)用程序同名的ini文件中,在下次被調(diào)用時自動調(diào)入。 4、procedure SetSate; 說明:用來設(shè)定系統(tǒng)狀態(tài)字 參數(shù):無 返回值:無 注:狀態(tài)字被自動保存到與應(yīng)用程序同名的ini文件中,在下次被調(diào)用時自動調(diào)入。 5、function StartWaveIn(chanl: Integer; const WaveFile: WideString): WideString; 說明:強制錄音開始 參數(shù):chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于雙口設(shè)備chanl的值有 0 、1、2、3 WaveFile:錄音文件的文件名,如果文件名是個空字符串,則系統(tǒng)會自動生成文件名,如果是合法的文件名,則系統(tǒng)會以給出的文件名生產(chǎn)錄音文件 返回值:實際的錄音文件名。如果文件名是空的則表示不能進行錄音。如果已經(jīng)開始錄音了則返回實際的錄音文件名。 注:在一般情況下,不用調(diào)用本函數(shù)。在默認(rèn)的情況下,控件會進行自動錄音如果是打進的電話,摘機后1秒開始自動錄音。打出的電話在播出3個電話號碼后的6秒開始錄音,在錄音開始時會有事件發(fā)生。 在未摘機的情況下,本函數(shù)失效。 本函數(shù)適用 JD-230X JD-250X JD-260X 系列產(chǎn)品 6、procedure StopWaveIn(chanl: Integer); 說明:停止通道chanl的錄音 參數(shù):chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于雙口設(shè)備chanl的值有 0 、1、2、3 7、procedure SetHandUp(isHandup: Integer; chanl: Integer); 說明:設(shè)定通道chanl摘機或掛機 參數(shù):isHandup: 摘機或掛機 1--摘機 0--掛機 chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于雙口設(shè)備chanl的值有 0 、1、2、3 注:本過程只適用于JD-250X和JD-260X系列的產(chǎn)品 8、procedure PlayWaveFile(WaveFile: WideString; chanl: Integer); 說明:在指定通道按文件播放語音 參數(shù):WaveFile: 錄音文件 數(shù)據(jù)格式為 8位數(shù)據(jù) 1通道 采樣率4800/秒 chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于雙口設(shè)備chanl的值有 0 、1、2、3 注:本過程只JD-260X系列的產(chǎn)品 9、procedure PlayWaveByte(wavebyte: Smallint; chanl: Integer); 說明:在指定通道按字節(jié)播放語音 參數(shù):wavebyte: 語音的采樣值 數(shù)據(jù)格式為 8位數(shù)據(jù) 1通道 采樣率4800/秒 chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于雙口設(shè)備chanl的值有 0 、1、2、3 注:本過程只JD-260X系列的產(chǎn)品 10、procedure PlayWaveData(WData: OleVariant; chanl: Integer); 說明:在指定通道按字節(jié)流播放語音 參數(shù):WData: 語音的采樣流 數(shù)據(jù)格式為 8位數(shù)據(jù) 1通道 采樣率4800/秒 chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于雙口設(shè)備chanl的值有 0 、1、2、3 注:本過程只JD-260X系列的產(chǎn)品 11、procedure playWaveabort(chanl: Integer); 說明:在指定通道停止播放語音數(shù)據(jù) 參數(shù):chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于雙口設(shè)備chanl的值有 0 、1、2、3 注:本過程只JD-260X系列的產(chǎn)品 12、function ReadFactryID: WideString; 說明: 讀取設(shè)備生產(chǎn)廠商的ID 返回值:廠商的ID 13、function ReadDevID: Integer; 說明: 讀取來電管理設(shè)備的設(shè)備號 返回值:設(shè)備號 14、function ReadDevVer: WideString; 說明: 讀取來電管理設(shè)備的型號和軟件版本 返回值:設(shè)備的型號和軟件版本 15、function LineStatus(chanl: Integer): Integer; 說明: 通道的線路狀態(tài) 參數(shù):chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于雙口設(shè)備chanl的值有 0 、1、2、3 返回值:線路狀態(tài) 0--摘機 255--掛機 16、function DialupChanl(const TeleNo: WideString; chanl: Integer): Integer; 說明:回撥電話 參數(shù):TeleNo:電話號碼 chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于四口設(shè)備chanl的值有 0 、1、2、3 返回值:沒有意義 注:電話號碼的長度不要超過16個字節(jié),超過16字節(jié)的建議一個一個地撥號,2個號碼之間的延時要大于200ms 對于要撥“0” 或 “9”才能撥外線的用戶,可以先調(diào)用本命令撥“0” 等待一段時間后再撥后面要撥出的號碼。 如在通道0 撥 0,38259081 可以使用以下過程 1、 DialupChanl('0',0) 2、 延時 (不能超過10秒,否則在此期間要發(fā)出摘機命令) 3、 DialupChanl('38259081',0) 17、function WavePath: WideString; 說明:保存錄音文件的路徑 參數(shù):無 要設(shè)定本參數(shù)可以在SetSate中設(shè)定 或在JD2000OCX.INI中直接修改 18、function SelectDev(const Devid: WideString): Integer; 說明:選擇當(dāng)前設(shè)備 參數(shù):Devid:設(shè)備所在的端口 如"COM1" "COM2" ..."COM8" 返回值: -1 指定端口的設(shè)備不存在。 0 指定端口的設(shè)備存在,并將當(dāng)前設(shè)備設(shè)為指定端口的設(shè)備,對設(shè)備的操作為對這個設(shè)備的操作。 本函數(shù)用于一臺電腦接有多個來電管理器的情形。 19、function CurDev: WideString; 說明:返回當(dāng)前設(shè)備 參數(shù):無 返回值: 當(dāng)前設(shè)備的端口 如 COM1 或 COM5等 20、function PlayingWave(chanl: Integer): WordBool; 說明:指定通道是否正在播音 參數(shù):chanl:通道號 通道1-4 的chanl值為0-3, 對于單口設(shè)備chanl的值永遠是0 對于雙口設(shè)備chanl的值只有 0 、1 對于四口設(shè)備chanl的值有 0 、1、2、3 返回值: 當(dāng)前通道是否正在播音 TRUE--正在播音 FALSE--不播音 四、事件與消息 1、 procedure OnRead(const s: WideString; t: Double; const devid: WideString; const WaveFile: WideString) 說明:當(dāng)有來電顯示或開始錄音時,會產(chǎn)生這個事件。 參數(shù): s: 來電或撥出的電話號碼 t: 發(fā)送來電或開始錄音的時間 實際是個Date數(shù)據(jù)類型 devid:設(shè)備號每一條線路對應(yīng)一個設(shè)備號如"2-1"和"1-1"分別表示COM2口的第1條線和COM1口的第1條線 WaveFile:錄音文件的文件名,如果你不進行錄音或你的設(shè)備沒有錄音功能的,可以忽略本參數(shù) 2、 procedure OnKeyPress(const key: WideString; const devid: WideString); 說明:當(dāng)檢測到有DTMF按鍵(電話按鍵)、電話振鈴、摘機或掛機時,會產(chǎn)生這個事件。 參數(shù): key: 電話按鍵或電話振鈴、摘機或掛機 key="R"、"T"、"H" 分表代表電話振鈴、摘機和掛機 key="0"、"1"、"2"、"3"...."9"、"*"、"#" 分表代表電話機的對應(yīng)按鍵被按下 devid:設(shè)備號每一條線路對應(yīng)一個設(shè)備號如"2-1"和"1-1"分別表示COM2口的第1條線和COM1口的第1條線 3、 procedure OnOpen; 一次成功的Open過程會觸發(fā)一次OnOpen事件 4、 procedure OnClose; 一次成功的Close過程會觸發(fā)一次OnClose事件 5、 procedure OnWaveIn(wavestring: OleVariant; Count: Integer; const devid: WideString); 說明:當(dāng)有錄音數(shù)據(jù)被獲取時,會產(chǎn)生這個事件。 參數(shù):wavestring: 錄音數(shù)據(jù),是Byte數(shù)組;8位數(shù)據(jù) 1通道 采樣率4800/秒 Count: 數(shù)據(jù)的長度以Byte計 devid:設(shè)備號每一條線路對應(yīng)一個設(shè)備號如"2-1"和"1-1"分別表示COM2口的第1條線和COM1口的第1條線 注:事件主要用于實時監(jiān)聽和用作語音網(wǎng)關(guān) 6、 procedure OnStartRecord(const devid, FileNam
|