你可能不知道的 Windows 快捷方式玩法

关于 windows 上的一类文件有这么一些笑话:你请某人发送一个文件副本 , Ta 将桌面上的「文件」拖到了聊天框 , 叮当一响 , 你收到了一份 document.lnk;你告诉 Ta 将某某软件卸载 , 于是 Ta 把桌面上的「软件」移到了回收站 , 告诉你「搞定了」……
这类文件读者都很熟悉 , 我们一般称之为快捷方式 , 它们的图标上都带着小箭头 。大部分软件安装后往往会同时在桌面和开始菜单中创建快捷方式;如果没有 , 一些读者可能会在目标文件上 右键 > 发送到 > 桌面快捷方式 自己己新建一个 。
但除了右键发送到桌面 , Windows 快捷方式其实还可以更快捷:在引用对象支持的情况下 , 它能做到直接调用软件的子功能、以某个模式启动程序等等 。
让我们先从快捷方式的工作方式讲起 。
快捷方式的基本知识在微软的 开发者文档 中 , 快捷方式有另外一个更准确的表述:Shell Links , 可翻译为壳层链接 。这个名称更趋近于它的本质:用于 Windows 壳层(Shell)的链接文件 。Windows 图形壳层自然是资源管理器(explorer.exe) , 这是它赖以工作的进程;而「链接」则说明 Shell Links 是指向引用对象(corresponding object)的文件而并非对象本身 。
工作方式和属性以桌面上的 Firefox.lnk 为例 , 当我们双击此链接 , 资源管理器发现用户尝试打开的文件类型为快捷方式 , 便读取了它的「目标」属性的内容 C:Program FilesMozilla Firefoxfirefox.exe , 然后尝试打开此「目标」 , Firefox 程序于是被唤起了 。
这和我们在资源管理器地址栏输入 Firefox.exe 位置的原理和效果是类似的 。

你可能不知道的 Windows 快捷方式玩法

文章插图
 
但不同的是 , 快捷方式有几个其他的属性是我们不能通过填充地址栏做到的:
  • 起始位置(工作目录 & working directory):告诉资源管理器从哪个位置打开目标 , 或者说 , 将目标运行在哪个位置;
  • 快捷键:当焦点位于快捷方式所在目录时 , 资源管理器接受以快捷键打开链接;
  • 备注/图标:快捷方式作为一个文件用于展示自己的各类信息 。
后缀名和类型听到打开快捷方式和在资源管理器地址栏输入地址类似 , 一些读者可能会想到 , Windows 资源管理器地址栏不光能输入文件地址 , 还可以输入shell:downloads 直接打开下载文件夹 , 输入shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}打开控制面板 , 输入https://example.com打开网站……
是的 , 快捷方式也能接受这些内容 。根据引用对象种类的不同 , 常用的快捷方式分为两种:
  1. .lnk 链接文件:注册表位置HKCRlnkfile , 引用对象是目录或文件(包括可执行程序);
  2. .url 网络快捷方式:注册表位置HKCRInternetShortcut , 引用对象是 URI 。
创建方式和解析过程通过图形界面创建快捷方式目前有两种途径:从引用对象创建和使用向导创建:
  1. 从引用对象创建:这种方式需要我们提前定位到引用对象(即快捷方式的目标) , 选中这个对象 , 要么右键 > 发送到 > 桌面快捷方式 , 要么按住 Alt 键 , 使用鼠标拖动文件到目标目录 , 然后松开鼠标 。前者在 Windows 11 已经变得非常繁琐 。
  2. 使用快捷方式创建向导:在任意目录下右键 , 选择新建 > 快捷方式 , 填入引用对象的地址和名称 。
以上面两种方式创建快捷方式时 , 引用对象必须存在 。但是创建完成后 , 引用对象存在与否就不再影响快捷方式 , 两者只会在用户打开快捷方式时发生关联 。
当用户双击快捷方式时 , 系统会尝试解析该快捷方式:首先它会用快捷方式指向的路径检查引用对象是否能直接找到;如果路径的目标无对象 , 资源管理器接下来会使用名为 分布式链接跟踪 的技术 , 依靠对象原来的大小 , 名称 , 创建日期等信息进行检索 , 成功找到目标后 Windows 会自动更新快捷方式的目标属性;若无法找到则会提示用户删除快捷方式 。


推荐阅读