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