Win8個性化:十多年的Windows 的任務(wù)欄上,都有某種形式的 "開始"按鈕和開始菜單。而在 Windows 8 中,發(fā)生了傳說中的翻天覆地的變化,"開始"按鈕從此消失。開始菜單變?yōu)殚_始界面。在 Windows 8 中所看到的任務(wù)欄左側(cè)第一圖標是固定的應(yīng)用程序圖標,而不是"開始"按鈕。
![](/d/20211018/f71fde24d2e7b91a413b8ad9b662928b.gif)
雖然沒了"開始"按鈕,我們在Windows 8上可以通過更為快捷和 自然的方式打開"開始"界面:
1. 對于觸控設(shè)備,將手指從屏幕右側(cè)向內(nèi)滑動,可觸發(fā)超級菜單,然后選擇"開始"超級按鈕。
2. 將鼠標移動至屏幕左下角,并單擊鼠標左鍵。
3.按Windows 鍵 或平板電腦的開始鍵。
![](/d/20211018/210ae7036492250c87f08592dc98f94c.gif)
不知是否有注意到,將鼠標移至屏幕左下角后,單擊一下鼠標右鍵會有什么發(fā)生呢?
![](/d/20211018/fc1dd67c9c44a3db9b3266314f5e6b3e.gif)
沒錯,這個就是單擊鼠標右鍵,或者按下 Win+X 組合鍵后所得到的 彈出式快捷菜單。這里我們稱之為 Win+X 菜單,或者"快速訪問菜單"。對于熱衷于傳統(tǒng)快速啟動欄或者傳統(tǒng)開始菜單的朋友們,它看似是一個可以好好利用的地方。但是它真的可以被自定義嗎?經(jīng)我的測試,對于默認的這些個條目,如果您不喜歡,可以刪除;但是您想加進來快捷方式的話,恐怕有些難度。
就像某些地方介紹的一樣,其實,這個快速訪問菜單的內(nèi)容呢,都是保存在用戶配置文件的一個文件夾中的。這個文件夾的路徑是 %LocalAppData%\Microsoft\Windows\WinX 。通過資源管理器鍵入這個地址,我們可以轉(zhuǎn)到這個文件夾。隨便打開其中一個文件夾,你可以發(fā)現(xiàn)里面其實都是快捷方式。
![](/d/20211018/8c313fc4cc0c189b4949a91bd835385f.gif)
那么為什么有三個文件夾?它們與快速訪問菜單有何關(guān)系呢?
其實,仔細看可以發(fā)現(xiàn),快速訪問菜單上面是有兩條分隔線的,這兩條線將菜單分為了上中下三個區(qū)域,自上而下,每個區(qū)域里面的快捷方式集合分別對應(yīng)著文件夾中的 Group 3、Group 2和Group 1這三個文件夾,就像是這樣
![](/d/20211018/6e47cd36460ca988d4cfd79f21d71a8b.gif)
那么,例如我們要把桌面這個條目刪除,只需去 Group 1 這個文件夾下,刪除其 快捷方式即可。如果你要重新增加一 組呢,那可以新建一個 文件夾重命名為"Group4"。這些操作 在重啟資源管理器進程后生效。
可是對于自定義該菜單,難度出 現(xiàn)在哪里呢?難度其實就是這里預(yù)先存在的快捷方式們都不是普通的快 捷方式。這些快捷方式被算出哈希值(Hash),并且在系統(tǒng)啟動的時候通過一些模塊對這些位置的快捷方式進行哈希值校驗。只有通過的快捷方式在登錄后才可供使用,而自定義的那些由于通不過檢查,所以最終還是不能顯現(xiàn)出來。(起初我 們走了很多彎路,以為跟注冊表的某些鍵值有直接關(guān)系,其實不然。)
既然是這樣,那我們從理論上有 兩種辦法去繞過這一機制,一種是找到這些算出的Hash值是跟哪兒的hash值進行對比的,也 就是說,我們可以往可能存在的一個Hash值庫里 面添加我們自定義的快捷方式的 Hash值;而第二種辦法呢,則是關(guān)閉系統(tǒng)的這個Hash值校驗功能,讓所有的自定義快捷方式同預(yù)先定義的特殊快捷方式混在一起,都顯示出來。
對于第一種辦法,其實系統(tǒng)可以通過 HashData 函數(shù),將快捷方 式的指向地址等一些信息進行聯(lián)合計算,算出一個唯一的Hash值,存在系統(tǒng)的某個Object中,像文件的Metadata里面可不可以存呢?我覺得還是有可能的。那會不會有個編譯好的文件存儲這些Hash呢?也是有可能的吧,總之可能性是多種多樣的,篇幅 有限,這里不深入進一步研究探討。
對于第二種辦法,我們已經(jīng)看見,system32 下面是有一個系統(tǒng) 文件專門負責(zé)展現(xiàn)新的"開始"屏幕和負責(zé)一些 Modern UI 的事情的,叫"twinui.dll"。經(jīng)證實,它的一部分內(nèi)容控制著 Windows 8 啟動時對這些快捷方式進行 Hash 校驗與否。我們可以通過 Hex 編輯器將其中的部分內(nèi)容進行修改,達到關(guān)閉 Hash 校驗的目的。具體做法,在這里不便透露。而且篡改系統(tǒng)文件有可能會造成系統(tǒng)的不穩(wěn)定,這也一直是不推薦的做法。但對于學(xué)習(xí)和研究目的,我 們發(fā)現(xiàn)了它的存在,也終于發(fā)現(xiàn)了這個機制背后的一些過程。
目前,如果您要學(xué)習(xí)和研究 Win+X 快速訪問菜單這一塊,那么就像當初要對 Windows 7 應(yīng)用第三方自定義主題一樣,得對管理這個機制的系統(tǒng)文件進行修改。建議您修改前先備份,并可使用網(wǎng)上廣為流傳的名叫"Win+X Menu Editor"的一 款小程序進行修改。
我想,微軟在這一塊做了限制,一方面是為了防止惡意軟件在用戶不知情的情況下利用這 里進行不安全的操作,另一方面呢,則是希望能保護 原生的 Windows 8 產(chǎn)品設(shè)計和用戶體驗,不希望這個快速訪問菜單成了 Windows 傳統(tǒng)開始菜 單的復(fù)原地。您覺得呢?歡迎各位提出觀點和進行討論。
最后,如果您要了解上文提到過的系統(tǒng)中的 HashDat a 函數(shù),那么請訪問:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb759853(v=vs.85).aspx
如果您好奇 同一個 Group 文件夾下的眾多快捷方式是如何進行排序的,又是如何做 到快捷方式的名稱與快速訪問菜單里顯示的名稱又可以不一樣的,大家可以自己動手 摸索和探究一下。小提示就是,不要忘記隱藏的 desktop.ini 文件!
目前,如果您要學(xué)習(xí)和研究 Win+X 快速訪問菜單這一塊,那么就像當初要對 Windows 7 應(yīng)用第三方自定義主題一樣,得對管理這個機制的系統(tǒng)文件進行修改。建議您修改前先備份,并可使用網(wǎng)上廣為流傳的名叫"Win+X Menu Editor"的一 款小程序進行修改。
我想,微軟在這一塊做了限制,一方面是為了防止惡意軟件在用戶不知情的情況下利用這 里進行不安全的操作,另一方面呢,則是希望能保護 原生的 Windows 8 產(chǎn)品設(shè)計和用戶體驗,不希望這個快速訪問菜單成了 Windows 傳統(tǒng)開始菜 單的復(fù)原地。您覺得呢?歡迎各位提出觀點和進行討論。
最后,如果您要了解上文提到過的系統(tǒng)中的 HashDat a 函數(shù),那么請訪問:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb759853(v=vs.85).aspx
如果您好奇 同一個 Group 文件夾下的眾多快捷方式是如何進行排序的,又是如何做 到快捷方式的名稱與快速訪問菜單里顯示的名稱又可以不一樣的,大家可以自己動手 摸索和探究一下。小提示就是,不要忘記隱藏的 desktop.ini 文件!