我們都知道,在Windows Server 2012系列的服務器版本中都已經引入了Modern的現代界面作為默認的用戶交互界面,同時滿足視覺一致化,新版的服務器管理程序也做成了扁平化。因此傳統的計算機(我的電腦)、我的文檔這些經典圖標默認是不會存在於傳統的經典桌面上的。
為什麼會有這樣的開題,微軟建議大家使用新得Modern模式,你還找原先的那些東西做什麼?
那麼場景來了,如果是一個需要給用戶定制模板的模板提供方(用戶有這方面的需求),或者是用戶自行拿到了只有Modern的界面服務器如何自定義經典桌面上需要的圖標,這裡面需要一個簡單有效的通用處理辦法。另外就是你單純靠自己找這個界面的開關,那是找不到的!不知道微軟是什麼意圖,想用鼠標找到他,就是找不到!
方法一:使用Windows自帶的搜索功能需要搜索的關鍵字就是“computer”這個在各種語言中都是通用的
在Modern界面下面直接敲擊鍵盤,輸入computer,在設置(settings)項目下可以看到
Figure 1Modern界面下搜索關鍵字“computer”即可找到
Figure 2傳統控制面板環境下搜索關鍵字"computer"也可方便找到
中文環境下,使用英文關鍵字一樣有效
Figure 3中文環境下使用英文關鍵字一樣有效
Figure 4在Windows 10 化境下一樣有效
方法二:使用命令行等非搜索方式此方法針對“老司機”用戶,喜歡使用命令行操作的朋友。
我們借助procexp工具可以查看到開啟程序所對應的系統命令行動作。
Figure 5系統是通過rundll32程序進行了窗口的調用,實現開啟一個帶有參數的desk.cpl控制面板程序
顯然上述的命令行對於老司機不合適,冗長不說,關鍵也不好記憶。
我們分析一下命令行裡面的內容對其進行“壓縮”。
首先我們需要了解“ "C:\Windows\system32\rundll32.exe" shell32.dll,Control_RunDLL desk.cpl,,0 " 這一長串代表了什麼。
紅色字體表明是主程序rundll32發起的進程,紫色的shell32.dll表明這是個需要調用圖標顯示殼有關的信息,綠色的Control字段表明這是個控制面板調用,藍色的desk.cpl是真正觸發的實體,
然後我們就可以這麼壓縮使用了。
對於需要使用命令行直接調取經典桌面圖標開關的“老司機”朋友,您可以直接在運行或者cmd黑框裡面輸入desk.cpl,,0,即可實現快速打開經典桌面圖標開關的對話框。
延伸MVP寫文章需要內容充實,所以在延伸部分會和大家討論為什麼微軟會這樣設計控制面板的開啟。
最早的cpl程序出現在Windows 95 裡面(KB149698),滿足多種多樣控制面板獨立設置(那是一個時代的開啟),也方便程序員寫程序時候調用控制面板設置窗口。
而隨著時代的進步,微軟自我的變革,新的Modern界面誕生了,這個看起來將“Windows”窗口弱化的界面實際上是將原先固化好的窗口經過程序以及用戶自定義窗口的結合,但是又由於用戶使用習慣的原因一些經典桌面下的設置還是需要使用控制面板來進行配置,(插播,在Windows 10的操作系統中,控制面板更多的是被“設置”那個 齒輪而替代,強大的搜索減少用戶再去鼠標指點的查找。)加上服務器操作用戶還是能夠盡量讓服務器功能單一化,直截了當能夠解決問題是一致的目標。可見微軟這樣處理也是一種折中的方式——不完全關閉用戶自定義經典桌面的渴望,又進一步引導用戶使用搜索這樣的高效率操作模式。
至於為什麼要這樣寫“ desk.cpl,,0 ”,原因來自於傳統窗口下的“單窗口多頁面(多標簽、多選項卡)”的設計思路。
某某.cpl,@m,n 這樣的表示方法標識調用了 某某.cpl下的那個頁面@m,上的第幾個標簽n。而通常情況下一個CPL程序只有一個主頁面@m,因此微軟的寫法“ desk.cpl,,0 ”表明——打開desk.cpl下的主頁面中的第0號標簽。用戶看到的就是一個只有一個標簽的desk.cpl程序。
好奇的我繼續向下走,如果不帶任何參數直接在Windows Server 2012下面打開desk.cpl會看到和設置分辨率一樣的界面,(插播,在Windows 10下面已經不是傳統桌面環境窗口了,這也證明了微軟逐漸弱化傳統桌面決心!!),而這個傳統桌面的發起者是控制面板本身control.exe,後由explorer.exe來接管。
繼續使用sysinternals的strings.exe程序進一步研究desk.cpl可以發現其中重要的一些開關項:
@Themes
@Desktop
@ScreenSaver
@Appearance
@Settings
他們分辨代表了@m中提及到的多種頁面,而現在被拆分成若干個獨立的個體,雖然入口還是desk.cpl但是最終接管的進程已經不在是那個控制面板程序了,在此,進一步證明微軟對於傳統桌面弱化的決心,想想以後通過搜索就能進行功能的開關也是一種愉快的事情,真正的條條大路通羅馬!上面的那些開關項通過字面就能了解到他們的含義。有興趣的朋友可以自己跟著desk.cpl, 後面玩一玩(注意有一個半角逗號)。
通過strings.exe還發現一個項目叫做DESK.CPL,,1,這個也可以開啟經典桌面下的圖標開關窗口,這是為什麼呢?讓我們回憶一下Windows XP,用這個命令我們可以調出桌面窗口,而其中的自定義桌面就可以完成當時XP桌面上通用圖標的設置。
Figure 6回憶Windows XP 下面的desk.cpl,,1
或許是程序開發者的留戀,也可能是恰巧碰上,也可能是適應老程序兼容性等等理由。但無論如何,過去的就讓它過去吧,要用新的思維去面對新帶來的變化,用新的方法去解決問題。
-=EOB=-
參考:http://vlaurie.com/computers2/Articles/control.htm 關於控制面板的詳解