前述 本控件是專門為高深商公司的"記得"系電腦來電管理器而設計,它適用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
|