大多数WinPE内置的开始菜单程序使用的是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字符,现在需要补齐缺少的注册表。
缺失的注册表为: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
接下来就需要将这个目录重定向到开始菜单目录。
其实通过上面步骤里的注册表里的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%"
看看效果:
非常棒!
Thanks!
Windows 11 has a new "Windows Tools" parameter.
You can use it for startisback.
What is the CLSID used there?
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"