我们都知道,在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程序。

好奇的我继续向下走,如果不带任何参数直接在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 关于控制面板的详解

在Windows Server 2012中如何快速开关桌面上经典的“计算机、我的文档”等通用图标的更多相关文章

  1. 在Windows Server 2012 中安装 .NET 3.5 Framework

    问题 如今,仍然有许多程序和应用需要依靠.NET 3.5 framework 来运行.在Windows Server 2012中,微软提供了.NET 3.5 和.NET 4.5的安装选项以为你的应用程 ...

  2. 在Windows Server 2012 中安装 .NET 3.5 Framework,PowerShell 安装.NET FRAMEWORK

    问题 如今,仍然有许多程序和应用需要依靠.NET 3.5 framework 来运行.在Windows Server 2012中,微软提供了.NET 3.5 和.NET 4.5的安装选项以为你的应用程 ...

  3. Windows Server 2012 配置多用户远程桌面

    前段时间因为需要多用户同时远程连接 windows server 2012,但找了半天也没找到远程桌面管理,最后从搜索中找到如下方法,经测试可行! 打开注册表,进入路径: [HKEY_LOCAL_MA ...

  4. [Azure附录]1.在Windows Server 2012中安装Active Directory域服务

    <Windows Azure Platform 系列文章目录> 1.登陆Windows Server 2012,打开服务器管理器,选择"添加角色和功能" 2.在&quo ...

  5. Windows Server 2012中安装Active Directory域服务

    1.登陆Windows Server 2012,打开服务器管理器,选择"添加角色和功能" 2.在"开始之前"页面,直接点击"下一步" 3.选 ...

  6. Windows Server 2012 R2部署--安装桌面体验

    Windows Server 2012 R2部署(3)---安装桌面体验 1) 打开服务器管理器 2) 选择所有服务器    3)添加角色和功能    4)下一步    5)下一步    6)下一步 ...

  7. [转]如何在Windows Server 2012中安装.Net Framework 3.5?

    http://www.cnblogs.com/westsource/archive/2012/12/26/2834876.html If you have Windows Server 2012 is ...

  8. 在Windows Server 2012中搭建SQL Server 2012故障转移集群

    OK~ WSFC 2012 R2 年度盛宴开始~ 在本文中,老王将用一系列的场景,把动态仲裁,动态见证,票数调整,LowerQuorumPriorityNodeID,阻止仲裁等群集仲裁技术串起来,完成 ...

  9. Windows Server 2008 R2 允许远程桌面连接这台计算机是灰色解决办法

    发现在给"远程协助"打钩时,是灰色的没法钩上,也就没办法开启.这是因为Windows Server 2008 R2的安全性已经被微软设计的很高,默认刚安装上Windows Serv ...

随机推荐

  1. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  2. TDD在Unity3D游戏项目开发中的实践

    0x00 前言 关于TDD测试驱动开发的文章已经有很多了,但是在游戏开发尤其是使用Unity3D开发游戏时,却听不到特别多关于TDD的声音.那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使 ...

  3. iOS开源项目周报0105

    由OpenDigg 出品的iOS开源项目周报第四期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. He ...

  4. javaScript的原型继承与多态性

    1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...

  5. 深入理解DOM节点操作

    × 目录 [1]创建节点 [2]插入节点 [3]移除节点[4]替换节点[5]复制节点 前面的话 一般地,提起操作会想到“增删改查”这四个字,而DOM节点操作也类似地对应于此,接下来将详细介绍DOM的节 ...

  6. NPM如何更新到最新版

    参考文章--npm更新到最新版本的方法 其实我们可以这样,随便新建一个文件夹例如:F:\test.按着"shift"键,右键该文件夹,选择"在此处打开命令窗口(W)&qu ...

  7. Kotlin中变量不同于Java: var 对val(KAD 02)

    原文标题:Variables in Kotlin, differences with Java. var vs val (KAD 02) 作者:Antonio Leiva 时间:Nov 28, 201 ...

  8. 让你从零开始学会写爬虫的5个教程(Python)

    写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个爬虫脚本是很简单的,但是对于新手来说却并不是那么容易. ...

  9. 基于SOA架构的TDD测试驱动开发模式

    以需求用例为基,Case&Coding两条线并行,服务(M)&消费(VC)分离,单元.接口.功能.集成四层质量管理,自动化集成.测试.交付全程支持. 3个大阶段(需求分析阶段.研发准备 ...

  10. Linux网卡驱动安装、防火墙原理

    安装网卡驱动程序: 需要检查是否安装kernel依赖包: rpm –q kernel-devel #检查kernel依赖包是否安装 yum –y install kernel-devel 检查gcc和 ...