自從上次版本(GG嘰嘰V3.2,增加離線訊息、離線檔案功能)釋出後,我個人覺得主要的大功能都實現得差不多了,接下來的幾個版本將不斷優化GG的細節,提高其可用性。這次版本更新的內容主要是為GG增加了系統設定、並完善的了群所需的基礎功能。
一.GG V3.4 新增功能展現
1.群功能完善
(1)建立群
(2)退出群(同時,通知其它群成員)
2.系統設定
(1)叉掉主視窗時,關閉程式還是隱藏視窗。
(2)麥克風裝置索引
(3)攝像頭裝置索引
(4)開機自動啟動
3.其它
(1)最近聯絡人列表。
(2)密碼不再使用明文,而是用md5加密。
(3)發現的bug修復。
廢話不多說,還是先上圖。
主皮膚變化:
建立群:
退出群:
系統設定:
最近聯絡人:
二.實現思路
雖然提供了原始碼,但是,我還是想將主要的思路列一下,這樣,大家理解起原始碼來,會節省更多的時間。
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到我郵箱:ggim2013@163.com。
如果你覺得還不錯,請粉我,順便再頂一下啊,呵呵