我想使用目标路径在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
填写后面的尽可能多的信息。