我们都知道,在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. 微软发布正式版SQL Server 2016

    微软于今天在SQL 官方博客上宣布 SQL Server 数据库软件的正式发布版本(GA),历时一年多,微软为该软件发布了多个公共预览版和候选版本,而今天最终版本终于上线了.在博客中,微软数据集团的企 ...

  2. Centos 下 mysql root 密码重置

    重置mysql密码的方法有很多,官网也提供了很方便的快捷操作办法,可参考资料 resetting permissions .本文重置密码的具体步骤如下: 一.停止MySQL(如果处于运行状态) #se ...

  3. 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?

    0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...

  4. netcore - MVC的ActionFilter的使用

    经过一周的时间没有分享文章了,主要是在使用.netcore做一个小的项目,项目面向大众用户的增删改查都做的差不多了,打算本周在云服务器上部署试试,很期待,也希望上线后大家多多支持:以上纯属个人废话,来 ...

  5. C++随笔:.NET CoreCLR之GC探索(3)

    有几天没写GC相关的文章了哈,今天我讲GC的方式是通过一个小的Sample来讲解,这个小的示例代码只有全部Build成功了才会有.地址为D:\coreclr2\coreclr\bin\obj\Wind ...

  6. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  7. autocomplete的使用

    autocomplete使用分为本地调用方法和读取远程读取数据源的方法 (1)本地调用方法 <script src="Scripts/jquery-1.4.1.min.js" ...

  8. 每天一个设计模式-7 生成器模式(Builder)

    每天一个设计模式-7 生成器模式(Builder) 一.实际问题 在讨论工厂方法模式的时候,提到了一个导出数据的应用框架,但是并没有涉及到导出数据的具体实现,这次通过生成器模式来简单实现导出成文本,X ...

  9. Ajax部分

    Ajax的概念 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是一种用于创建快速动态网页的技术. 动态网页:是指 ...

  10. git

    CMD命令:git initgit add . [添加文件至暂存区]git commit -m '描述性语句 随意写即可'git branch gh-pages [创建仓库分支]git checkou ...