我们都知道,在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. Tomcat一个BUG造成CLOSE_WAIT

    之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...

  2. 【.net 深呼吸】细说CodeDom(5):类型成员

    前文中,老周已经厚着脸皮介绍了类型的声明,类型里面包含的自然就是类型成员了,故,顺着这个思路,今天咱们就了解一下如何向类型添加成员. 咱们都知道,常见的类型成员,比如字段.属性.方法.事件.表示代码成 ...

  3. 旺财速啃H5框架之Bootstrap(五)

    在上一篇<<旺财速啃H5框架之Bootstrap(四)>>做了基本的框架,<<旺财速啃H5框架之Bootstrap(二)>>篇里也大体认识了bootst ...

  4. 高性能IO模型浅析

    高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking  ...

  5. Minor【 PHP框架】1.简介

    1.1 Minor是什么 Minor是一个简单但是优秀的符合PSR4的PHP框架,It just did what a framework should do. 只做一个框架应该做的,简单而又强大! ...

  6. 23种设计模式--中介者模式-Mediator Pattern

    一.中介者模式的介绍     中介者模式第一下想到的就是中介,房子中介,婚姻中介啊等等,当然笔者也希望来个婚姻中介给我介绍一个哈哈哈,,回归正题中介者模式分成中介者类和用户类,根据接口编程的方式我们再 ...

  7. VS项目中使用Nuget还原包后编译生产还一直报错?

    Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...

  8. arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序

    前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...

  9. Android之使用文件进行IPC

    一.文件进行IPC介绍 共享文件也是一种不错的进程间通信方式,两个进程通过读/写同一个文件来交换数据.在Windows上,一个文件如果被加了排斥锁将会导致其他线程无法对其进行访问,包括读写,而由于An ...

  10. TFS 2015 敏捷开发实践 – 看板的使用

    看板在现代应用开发过程中使用非常广泛,不管是使用传统的瀑布式开发还是敏捷开发,都可以使用看板管理.因为看板拥有简单的管理方法,直观的显示方式,所以很多软件开发团队选择使用看板进行软件开发管理.本文不在 ...