QQ是如何?好友案頭捷徑的?

來源:互聯網
上載者:User

QQ是如何?好友案頭捷徑的?

        不知道什麼時候,QQ推出了好友案頭捷徑,方便使用者和最常保持聯絡的好友一鍵聯絡。核心功能一:若QQ啟動了,則雙擊捷徑直接開啟好友聊天介面;核心功能二:若QQ未啟動,則雙擊捷徑後啟動QQ後開啟好友聊天介面。但其是如何?的呢?讓我們一起挖一挖。

一、QQ好友案頭捷徑操作示範

      

      直接,很明了,不過多解釋。

二、QQ好友案頭捷徑的Windows實現

        

        是案頭好友捷徑的幾個關鍵屬性,解析如下:

        1)、目標——關聯的進程,捷徑無非是可執行程式的快捷連結。給QQ.exe進程建立捷徑展開屬性探索,目標位置內容為:C:\Program Files\Tencent\QQ\QQProtect\Bin\QQProtect.exe

        這就是QQ的核心進程。而對比好友捷徑的目標位置內容為:

C:\ProgramFiles\Tencent\QQ\Bin\QQScLauncher.exe" /uin:*********/quicklunch:096275A1A8 3DC509B82E14BEE49552 98B7C1FF2235EB054520E6686E1353FA8ED7219F5CC4213B89

         組成結構為:啟動關聯進程/自己的QQ號/標識好友資訊的80個16進位值。該組成即是捷徑能實現與好友直接互聯的核心。

        2)、開啟檔案位置——EXE進程的路徑即QQScLauncher.exe的安裝路徑。

        3)、更改表徵圖——表徵圖的儲存路徑,即是好友的頭像表徵圖的儲存路徑,如所示:

        基本斷定為32位MD5值.ico的形式儲存的好友頭像。

       Windows下實現案頭捷徑需要用到兩個COM介面IShellLink和IPersistFile的部分函數。

       1)設定目標:HRESULT SetPath(LPCTSTR pszFile);    

       2)更改表徵圖: HRESULT SetIconLocation(LPCTSTRpszIconPath,int iIcon);

       3)儲存捷徑:HRESULT Save( LPCOLESTRpszFileName, BOOL fRemember);

三、QQ好友案頭捷徑的實現流程

       個人推斷的大致流程如下:

      

       第1步:實現QQScLauncher.exe與QQProtect.exe的通訊。

       QQProtect.exe負責多使用者QQ的登入,而QQScLauncher.exe需要通過QQProtect.exe得知當前建立案頭捷徑的好友的QQ號是否已經啟動?

       1)如果QQ沒有啟動,則調用QQProtect.exe啟動QQ而後開啟好友介面;

       2)如果QQ啟動了,則直接開啟好友頁面。

       兩進程之間可以通過共用記憶體方式實現通訊。

       第2步:下載QQ好友映像儲存到安裝路徑下。       

       儲存路徑為C: \Users\Administrator\AppData\Roaming\Tencent\QQ\Misc\Shortcuts。為好友建立案頭捷徑提供表徵圖支援。QQ不可能將每個QQ好友的表徵圖都下載到臨時儲存目錄下,那樣的話儲存和處理都是問題。只是會在需要的時候才會儲存。表徵圖的下載可以通過類似URLDownloadToFile ()的介面實現。

       第3步:通過COM介面IShellLink和IPersistFile的實現建立好友案頭捷徑。詳細函數參見第二部分。

四、測試好友案頭捷徑效果回饋

        第1點,如果建立了好友的案頭捷徑,即使我們人為手動更換了名稱。如“1234.lnk”改為“5678.lnk”,但是點擊刪除案頭捷徑,仍然能夠刪除。前提是好友捷徑必須還在案頭路徑如C:\Users\Public\Desktop上。是什麼標示了該捷徑的唯一性?尚不知道。

        第2點,如果我們人為刪除了好友案頭捷徑,右擊好友仍會出現“產生案頭捷徑”;但是一旦我們產生了案頭捷徑,右擊好友只會出現“刪除案頭捷徑”。該功能實現的細節很到位。

這隻是QQ實現的一個小功能,仔細留意,這些小功能都極大的方便了我們福士使用者的操作。也為我們開發人員提供了很好的借鑒和參考。

        2014-4-26 pm0:40 思於家中床前

作者:銘毅天下

轉載請標明出處,原文地址:http://blog.csdn.net/laoyang360/article/details/24503161

如果感覺本文對您有協助,請點擊‘頂’支援一下,您的支援是我堅持寫作最大的動力,謝謝!


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.