使用扩展的Shell路径在Windows 10中创建通用快捷方式



我想使用目标路径在Windows 10中创建通用快捷方式外壳路径的扩展,类似

%windir%explorer.exe shell:AppData ..LocalTemp

%windir%explorer.exe shell:AppData独自工作,带我去漫游Userfiles。

我可以使用

%windir%explorer.exe shell:UsersFilesFolder

这将带我到 %UserProfile%并从那里附加(如果我能找出如何找到(,只能在可能的情况下上升。

我无法锻炼

  • 如何将另一对目录附加到快捷方式目标路径
  • 如何首先上一个目录(..?(

如何使此工作的语法?

首先, %Temp%可能与 %LOCALAPPDATA%Temp

不一样

创建与%Temp%完美快捷方式的方法并不容易,理想情况下,.lnk只能包含一个exp_sz_link:exp_sz_link_sig block带有 %Temp%字符串。您必须手动删除itemIdlist块才能获取这样的.lnk文件。%Temp%非常复杂,因为它没有特殊文件夹的规范名称,您可以与shell:protocol。

一起使用。

我不相信外壳:协议支持...路径组件。

shell:AppData ..Local也是错误的,因为本地AppData文件夹可能在其他地方(< Windows Vista使用了不同的名称(,而更好的命令将是%windir%explorer.exe "shell:LocalAppData"(又是%windir%explorer.exe "shell:Local AppDataTemp"(,但所有这些命令都有其他问题。

首先,Explorer可能不是用户外壳,您可能会不遵守用户的偏好。

另一个问题是.lnk文件包含其目标的属性,并且因为链接实际上指向.exe文件您的.lnk文件将没有为其目标属性设置的FILE_ATTRIBUTE_DIRECTORY位,并且Shell不会理解Shell它指向文件夹。指向文件夹的.lnk有时会在浏览外壳时在同一窗口中打开,而不是打开新文件浏览器窗口。

记录了.lnk二进制格式,并通过将规则稍微打破,我已经能够创建一个链接,通过将EXP_SPECIAL_FOLDER块与操纵itemIdlist组合到特殊的shell文件夹中的文件/文件夹中,但是原因此技巧不适合更深的路径。

EXP_SPECIAL_FOLDER块和一个空的itemIdList是为特殊文件夹创建快捷方式的唯一方法,该文件夹保证可以在所有系统上使用,但您必须手动创建它,IShellLink实现添加了可能会破坏事物的系统特定块在另一个系统上使用链接。

自Windows 95以来,.lnk格式的变化并没有太大变化,并且相对于特殊文件夹,当复制到其他系统时也可以使用它们,就没有简单的方法来创建快捷方式。.lnk中的相对路径字符串相对于.lnk文件本身,在这种情况下没有帮助。

我建议您只需在安装程序/应用程序中的目标系统上创建.lnk,然后让IShellLink填写后面的尽可能多的信息。

最新更新