標籤:winform style class blog code http
基於CRM客戶和諮詢者的普遍需求,老闆決定在CRM系統上加入來電彈屏功能,所謂來電彈屏,就是當一個電話打入時,電腦會彈出該電話號碼對應的客戶、連絡人或者供應商詳細資料,如果是新號碼,則添加一個新的客戶。
要達到這樣的效果,首先需要硬體的支援,最後老闆決定使用紐曼USB來電通作為電話與電腦的串連媒介,它提供二次開發介面,可以實現電腦中擷取電話來電號碼並彈屏。其次需要在CRM系統中預留一個介面支援根據電話號碼彈出資訊。由於CRM以前和某知名話務中心整合,所以留有這樣的借口。
於是就只差一個用戶端來串連硬體和CRM系統了,來電通提供了多中語言的開發樣本,有VB、Delphi,C#等,由於我學過Java,C#文法和Java差不多,又以前用過VS2005編寫MFC程式,於是便說服老闆使用C#來發用戶端。
C#開發windows用戶端果然效率很高,我一天就做出了一個簡易的Demo,實現了彈屏的功能,然後陸陸續續的加入開機自啟動、同時只允許一個進程運行等,然後進行一下介面美化,就完成了,當然裡面很多東西都是通過Google在很多blog中搜尋出來的,哎,如果沒有google,那該怎麼辦?現在我就把資料整理一下:
C#匯入(來電通)API函數提取電話號碼:http://topic.csdn.net/u/20080319/17/6e20454d-3457-4ece-ac1b-30c03a1729ed.html
C# 程式只能運行一次:http://www.cnblogs.com/fubin/archive/2009/12/08/1619229.html
C#開機自動啟動程式:http://www.cnblogs.com/xumingming/archive/2009/01/08/1371931.html
winform程式加表徵圖:http://wenwen.soso.com/z/q173944920.htm
另:紐曼USB來電通開發介面有個小bug,Setup_Tel函數中的回呼函數當你打電話時也會觸發,而且電話號碼不一定是你撥的號碼(和你撥的速度有關),遇到這個問題可以使用LineOffHook_Tel函數,判斷是否摘機,從而判斷是否來電,代碼如下:
Java代碼
- string number;
- bool zhaiji = LDT.LineOffHook_Tel(port);
- number = LDT.GetNumber_Tel(port).ToString();
- if (!zhaiji)
- {
- //現在有電話打入,是來電
- }
好了,就總結到這裡吧,這個任務完成,馬上就會有新的任務了。又一次新的編碼旅程開始了。