自從上次版本(GG嘰嘰V3.2,增加離線消息、離線文件功能)發佈後,我個人覺得主要的大功能都實現得差不多了,接下來的幾個版本將不斷優化GG的細節,提高其可用性。這次版本更新的內容主要是為GG增加了系統設置、並完善的了羣所需的基礎功能。

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

1.羣功能完善

(1)創建羣

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

2.系統設置

(1)叉掉主窗口時,關閉程序還是隱藏窗口。

(2)麥克風設備索引

(3)攝像頭設備索引

(4)開機自動啓動

3.其它

(1)最近聯繫人列表。

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

(3)發現的bug修復。 

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

  主面板變化:

  

QQLT魔改bios教程_QQLT魔改bios教程

       

     創建羣:

     

QQLT魔改bios教程_服務端_02

  退出羣:

     

QQLT魔改bios教程_客户端_03

     系統設置:

  

QQLT魔改bios教程_QQLT魔改bios教程_04

  最近聯繫人:

     

QQLT魔改bios教程_客户端_05

 

二.實現思路

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

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概要。