Win8 的快速访问菜单(没有了开始)揭秘过程

从 Windows 95 开始,每个版本的 Windows 的任务栏上,都有某种形式的"开始"按钮。而在 Windows 8 中,这一点得以重塑,"开始"按钮从此消失。如下图所示,在 Win8 中您所看到的任务栏左侧第一图标是固定的应用程序图标,而不是"开始"按钮。

虽然没了"开始"按钮,我们在Win8上可以通过更为快捷和自然的方式打开"开始"屏幕:

1. 对于触控设备,将手指从屏幕右侧向内滑动,可触发超级按钮栏,然后选择"开始"超级按钮。

2. 将鼠标移动至屏幕左下角,并单击鼠标左键。

不知您是否有注意到,将鼠标移至屏幕左下角后,单击一下鼠标右键会有什么发生呢?

没错,这个就是单击鼠标右键,或者按下 Win+X 组合键后所得到的弹出式快捷菜单。这里我们称之为 Win+X 菜单,或者"快速访问菜单"。对于热衷于传统快速启动栏或者传统开始菜单的朋友们,它看似是一个可以好好利用的地方。但是它真的可以被自定义吗?经我的测试,对于默认的这些个条目,如果您不喜欢,可以删除;但是您想加进来快捷方式的话,恐怕有些难度

就像某些地方介绍的一样,其实,这个快速访问菜单的内容呢,都是保存在用户配置文件的一个文件夹中的。这个文件夹的路径是 %LocalAppData%/Microsoft/Windows/WinX 。通过资源管理器键入这个地址,我们可以转到这个文件夹:

随便打开其中一个文件夹,你可以发现里面其实都是快捷方式哦~

那么为什么有三个文件夹?它们与快速访问菜单有何关系呢?

其实,仔细看可以发现,快速访问菜单上面是有两条分隔线的,这两条线将菜单分为了上中下三个区域,自上而下,每个区域里面的快捷方式集合分别对应着文件夹中的 Group 3、Group 2和Group 1这三个文件夹,就像是这样:

那么,例如我们要把桌面这个条目删除,只需去 Group 1 这个文件夹下,删除其快捷方式即可。如果你要重新增加一组呢,那可以新建一个文件夹重命名为"Group4"。这些操作在重启资源管理器进程后生效。

可是对于自定义该菜单,难度出现在哪里呢?难度其实就是这里预先存在的快捷方式们都不是普通的快捷方式。这些快捷方式被算出哈希值(Hash),并且在系统启动的时候通过一些模块对这些位置的快捷方式进行哈希值校验。只有通过的快捷方式在登录后才可供使用,而自定义的那些由于通不过检查,所以最终还是不能显现出来。(起初我们走了很多弯路,以为跟注册表的某些键值有直接关系,其实不然。)

既然是这样,那我们从理论上有两种办法去绕过这一机制,一种是找到这些算出的Hash值是跟哪儿的hash值进行对比的,也就是说,我们可以往可能存在的一个Hash值库里面添加我们自定义的快捷方式的Hash值;而第二种办法呢,则是关闭系统的这个Hash值校验功能,让所有的自定义快捷方式同预先定义的特殊快捷方式混在一起,都显示出来。

对于第一种办法,其实系统可以通过 HashData 函数,将快捷方式的指向地址等一些信息进行联合计算,算出一个唯一的Hash值,存在系统的某个Object中,像文件的Metadata里面可不可以存呢?我觉得还是有可能的。那会不会有个编译好的文件存储这些Hash呢?也是有可能的吧,总之可能性是多种多样的,篇幅有限,这里不深入进一步研究探讨。

对于第二种办法,我们已经看见,system32 下面是有一个系统文件专门负责展现新的"开始"屏幕和负责一些 Modern UI 的事情的,叫"twinui.dll"。经证实,它的一部分内容控制着 Windows 8 启动时对这些快捷方式进行 Hash 校验与否。我们可以通过 Hex 编辑器将其中的部分内容进行修改,达到关闭 Hash 校验的目的。具体做法,在这里不便透露。而且篡改系统文件有可能会造成系统的不稳定,这也一直是不推荐的做法。但对于学习和研究目的,我们发现了它的存在,也终于发现了这个机制背后的一些过程。

目前,如果您要学习和研究 Win+X 快速访问菜单这一块,那么就像当初要对 Windows 7 应用第三方自定义主题一样,得对管理这个机制的系统文件进行修改。建议您修改前先备份,并可使用网上广为流传的名叫"Win+X Menu Editor"的一款小程序进行修改。

我想,微软在这一块做了限制,一方面是为了防止恶意软件在用户不知情的情况下利用这里进行不安全的操作,另一方面呢,则是希望能保护原生的 Windows 8 产品设计和用户体验,不希望这个快速访问菜单成了 Windows 传统开始菜单的复原地。您觉得呢?欢迎各位提出观点和进行讨论。

最后,如果您要了解上文提到过的系统中的 HashData 函数,那么请访问:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb759853(v=vs.85).aspx

如果您好奇同一个 Group 文件夹下的众多快捷方式是如何进行排序的,又是如何做到快捷方式的名称与快速访问菜单里显示的名称又可以不一样的,大家可以自己动手摸索和探究一下。小提示就是,不要忘记隐藏的 desktop.ini 文件咯~

(0)

相关推荐

  • Win8.1 Update磁盘空间如何快速访问

    Win8.1 Update磁盘空间如何快速访问,磁盘是系统盘管理程序,是电脑的核心部分。 1、在空白桌面右键,新建快捷方式 2、在对象位置输入如下路径: 简体中文系统: %localappdata%/ ...

  • Win8快速链接菜单 高效系统设置

    电脑使用中会涉及到我们常用的系统设置工具比如控制面板、电源管理、磁盘管理等等,有什么办法可以迅速找到和打开呢?也许大家还不知道,Win8系统有一个神秘的“快速链接菜单”,里面包含了我们常用的系统设置工 ...

  • Win8.1系统快速访问网页技巧

    在Win8.1系统中,我们可以通过将单独网页的快捷方式放置到开始屏幕或是任务栏中,这样可以达到快速访问常用网站的目的。下面小编就为大家介绍一下具体方法。 1.首先,我们用IE浏览器打开想要快速浏览的网 ...

  • Win7/Win8.1用户:这样移除Win10"快速访问"功能

    对于习惯使用Win7/Win8.1的用户来说,Win10的"快速访问"功能也许并不是太受欢迎.首先是文件资源管理器默认打开的就是"快速访问",而不是" ...

  • Win8.1快速切换不同账户小技巧无需注销或者重启电脑

    在我们熟悉的XP/Win7系统中,要切换不同登录用户,通常需要选择注销当前账户,然后重新进入登录界面,来重新选择登录帐户,而在最新的 Win8/Win8.1系统中,切换账户变得更为简单,无需注销或者重 ...

  • Win8.1快速切换不同账户的方法无需注销或者重启电脑

    在我们熟悉的XP/Win7系统中,要切换不同登录用户,通常需要选择注销当前账户,然后重新进入登录界面,来重新选择登录帐户,而在最新的Win8/Win8.1系统中,切换账户变得更为简单,无需注销或者重启 ...

  • Win7怎么利用跳转列表功能快速访问应用程序及锁定和解锁项目

    当Win7作为微软新一代操作系统,拥有更炫更酷的功能体验,在应用程序功能方面,也有更巧妙的设计。今天给大家介绍一下win7中新增的功能——跳转列表 (Jump List) ,可快速访问常用的文档、图片 ...

  • 在Word2007快速访问工具栏中添加命令

    快速访问工具栏浮动在Word2007窗口的左上角,允许用户将最常使用的命令或按钮添加到此处,快速访问工具栏是Word2007窗口中唯一允许用户自定义的窗口元素。将常用命令或按钮添加到快速访问工具栏的步 ...

  • 快速访问Win7系统资源管理器

    win7系统没有提供直接进入资源管理器的方法,而功能强人的资源管理器则是用户常常使用的,如何能快速便捷地进入资源管理器呢? 最快速访问win7系统下载资源管理器的方法是,按住键盘上的Shift键,然后 ...