[教程] 通过目录重定向的方法在StartIsBack开始菜单右侧增加“开始菜单-所有程序”入口
2021-11-17 2002

大多数WinPE内置的开始菜单程序使用的是StartIsBack,设置好后的效果如下图所示:

如果要打开某个程序,每次都要点击“所有程序”之后,打开程序目录——程序,不算很直观;

现在,我们决定在这个开始菜单程序的右侧增加一个入口,能直接按树形目录展示所有程序。大概思路是先在StartIsBack右侧显示一个闲置文件夹,然后将这个文件夹的位置重定向到开始菜单目录位置。

修改StartIsBack注册表

我们直接挑选了OneDrive文件夹,在WinPE里你无法使用OneDrive,所以干脆“废物利用”;

通过修改StartIsBack注册表,在右侧把OneDrive文件夹显示出来:

挂载default注册表文件为HKEY_LOCAL_MACHINE\df,定位到注册表(为了方便演示,我直接在WinPE中修改注册表,可以立即看到效果)

HKEY_LOCAL_MACHINE\df\Software\StartIsBack

将Start_ShowSkyDrive值改成2

刷新explorer后可以看到效果:

如果你的WinPE精简了OneDrive相关的注册表,那么应该跟图上显示的一样,OneDrive的文字部分显示成了GUID字符,现在需要补齐缺少的注册表。

设置OneDrive相关注册表

缺失的注册表为:HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}

补齐这部分注册表就可以正常显示OneDrive了

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}]
@="OneDrive - Personal"
"System.IsPinnedToNameSpaceTree"=dword:00000001
"SortOrderIndex"=dword:00000042

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\DefaultIcon]
@="C:\\Users\\cf\\AppData\\Local\\Microsoft\\OneDrive\\OneDrive.exe,0"

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\InProcServer32]
@=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\Instance]
"CLSID"="{0E5AAE11-A475-4c5b-AB00-C66DE400274E}"

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\Instance\InitPropertyBag]
"Attributes"=dword:00000011
"TargetKnownFolder"="{a52bba46-e9e1-435f-b3d9-28daa648c0f6}"

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\ShellFolder]
"FolderValueFlags"=dword:00000028
"Attributes"=dword:f080004d

刷新explorer看看效果:

细心的同学会发现,这里显示的“OneDrive - Personal”就是注册表HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}下面的默认值,那我们改成“开始菜单”字样吧:

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}]
@="@%SystemRoot%\\system32\\shell32.dll,-21786"

再来看看效果:

哈哈,显示正常了。

鼠标点击“>”看看有什么?

咦?什么都没有?没错,现在这里的默认位置还是OneDrive的目录位置,在X:\Users\Default\OneDrive

接下来就需要将这个目录重定向到开始菜单目录。

修改OneDrive目录位置

其实通过上面步骤里的注册表里的GUID,我们可以发现设置OneDrive目录的注册表位置在:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{A52BBA46-E9E1-435f-B3D9-28DAA648C0F6}

直接定位到这里的注册表(离线修改WinPE时请挂载software注册表文件到HKEY_LOCAL_MACHINE\sf)

现在直接告诉你,设置目录位置的注册表键是RelativePath,我们直接修改这个键值就行了:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{A52BBA46-E9E1-435f-B3D9-28DAA648C0F6}]
"RelativePath"="%StartMenu%"

看看效果:

非常棒!

收藏
点赞
分享
官方QQ群:872611894(群密码:pecmd.net)
最新回复 (2)
  • avatar image
    Doberman 2021-11-19

    Thanks!

     

    Windows 11 has a new "Windows Tools" parameter.

    You can use it for startisback. 

    What is the CLSID used there?

  • avatar image
    caocaofff 2021-11-19
    楼主   3
    Doberman Thanks! Windows 11 has a new "Windows Tools" parameter. You can use it for startisback ...

    This method is only suitable for path redirection of shortcuts that can be displayed by startlsback++. Obviously, startlsback++ cannot display "Windows Tools"

    官方QQ群:872611894(群密码:pecmd.net)
返回