天天看點

可在廣域網部署運作的QQ高仿版 -- GG叽叽V3.4,增加系統設定、最近聯系人、群功能(源碼)

GG的主要的大功能都實作得差不多了,接下來的幾個版本将不斷優化GG的細節,提高其可用性。這次版本更新的内容主要是為GG增加了系統設定、并完善的了群所需的基礎功能。

  自從上次版本(GG叽叽V3.2,增加離線消息、離線檔案功能)釋出後,我個人覺得主要的大功能都實作得差不多了,接下來的幾個版本将不斷優化GG的細節,提高其可用性。這次版本更新的内容主要是為GG增加了系統設定、并完善的了群所需的基礎功能。

一.GG V3.4 新增功能展現 

1.群功能完善

(1)建立群

(2)退出群(同時,通知其它群成員)

2.系統設定

(1)叉掉主視窗時,關閉程式還是隐藏視窗。

(2)麥克風裝置索引

(3)攝像頭裝置索引

(4)開機自動啟動

3.其它

(1)最近聯系人清單。

(2)密碼不再使用明文,而是用md5加密。

(3)發現的bug修複。 

      廢話不多說,還是先上圖。

  主面闆變化:

  

可在廣域網部署運作的QQ高仿版 -- GG叽叽V3.4,增加系統設定、最近聯系人、群功能(源碼)

     建立群:

可在廣域網部署運作的QQ高仿版 -- GG叽叽V3.4,增加系統設定、最近聯系人、群功能(源碼)

  退出群:

可在廣域網部署運作的QQ高仿版 -- GG叽叽V3.4,增加系統設定、最近聯系人、群功能(源碼)

     系統設定:

可在廣域網部署運作的QQ高仿版 -- GG叽叽V3.4,增加系統設定、最近聯系人、群功能(源碼)

  最近聯系人:

可在廣域網部署運作的QQ高仿版 -- GG叽叽V3.4,增加系統設定、最近聯系人、群功能(源碼)

二.實作思路

  雖然提供了源代碼,但是,我還是想将主要的思路列一下,這樣,大家了解起源碼來,會節省更多的時間。

1. GG V3.4 在用戶端增加了SystemSettings類,對應系統設定的内容。其将會被序列化儲存為本地檔案,預設是運作目錄下的GGConfig.xml檔案。

2. SystemSettings被設計為Singleton模式,第一次使用時,将會自動加載;每次修改後,将重新序列化儲存。

3. 用戶端增加了SystemSettingForm窗體,用于顯示和設定SystemSettings的選項值。

4.用戶端主界面增加了一個ChatListBox控件,用于顯示最近聯系人清單,在每次建立聊天視窗時,會将對應的好友置于“最近聯系人”清單的頂端。(MainForm的GetChatForm方法)

5.建立群

(1)InformationTypes增加資訊類型:CreateGroup。

(2)服務端:VirtualDB類增加CreateGroup方法,如果建立群成功,則建立者會自動成為群成員;CustomizeHandler類的HandleQuery增加了對CreateGroup類型資訊的處理。

(3)用戶端:增加了CreateGroupForm窗體,用于建立群。

6.退出群

(1)InformationTypes增加資訊類型:QuitGroup(申請退出群)。BroadcastTypes增加廣播資訊類型:SomeoneQuitGroup(用于通知其他群成員有人退出了群)。

(2)服務端:VirtualDB類增加QuitGroup方法;CustomizeHandler類的HandleInformation增加了對QuitGroup類型資訊的處理(并通知其他群成員)。

(3)用戶端:在MainFormPartial.cs檔案的GroupOutter_BroadcastReceived方法中,增加了對SomeoneQuitGroup廣播消息的處理。 

7.開機啟動:GG是通過修改系統資料庫的方式來決定是否開機自動啟動,但是修改系統資料庫需要管理者的權限,這意味着,如果要使用這一功能,必須以管理者的身份啟動GG。針對這一點,我覺得不是很好。QQ是不需要管理者權限就實作了這樣的功能,它是怎麼做到的了?有知道的朋友請留言告知一下。(在釋出的GG版本中,我屏蔽掉了實作該功能的代碼,SystemSettingForm的skinCheckBox1_CheckedChanged方法)。

三.GG V3.4 源碼下載下傳  

下載下傳最新版本,請轉到這裡。 

 注意:如果要将GG部署到廣域網,則可以在服務端的配置檔案中設定監聽的端口;而在用戶端的配置檔案中,則可以指定伺服器的IP和Port。

關于GG的最新全貌介紹、以及如何部署、試用帳号等問題,我單獨寫了一篇文章,作為彙總,可參見 可在廣域網部署運作的QQ高仿版 -- GG2013概要。 

歡迎和我探讨關于GG2013的一切,我的QQ:2027224508,多多交流!  

大家有什麼問題和建議,可以留言,也可以發送email到我郵箱:[email protected]。 

如果你覺得還不錯,請粉我,順便再頂一下啊,呵呵