首页 > 解决方案 > 使用 REGValue 在任务栏中创建 Windows 工具栏

问题描述

我目前正在进行演示部署,其中需要用户自定义工具栏。

通常,您可以直接以用户身份创建这些工具栏,然后右键单击任务栏,然后创建新的工具栏。不像许多人建议由其他值和文件夹创建的固定项目。

我做了一些研究,结果发现在脚本或程序中做到这一点并不容易(我主要使用 C# 和 PowerShell)。我已经发现以下 REG-Binary 键:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop

保存我要重写的信息,但我无法解码此值或为新映射创建新值。我也尝试了导出导入的东西,这很麻烦,因为这些值在某种程度上受用户名(因为它在用户上下文中)和创建设置的机器名称的影响。

以前有没有人使用过这些值,并且可以深入了解微软是如何编码它们的?它似乎类似于游戏中的旧保存状态,其中根据字节更改不同的状态处于活动状态。这些是我到目前为止自己能弄清楚的内部部分。

我很想构建一个工具来对 TaskbarWinXP 键中的设置进行解码和编码,并使其开源,我们都可以从中受益。

标签: c#powershellregistrytoolbartaskbar

解决方案


解码它并不容易,那里有一些魔力。如果您在 reg 中更改计算机名称,它将不起作用,因为在 reg 中它被编码为计算机名称的大小。但有一个解决方案。

如您所说,首先创建工具栏将其放在您想要的位置,然后保存 reg :

reg export HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop taskbar_toolbar_Backup.reg

如果你也想保存任务栏的位置(左停靠,底部......等),那么也保存这个:

REM change StuckRects2 to StuckRects3 if you are in win10
reg export HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2 taskbar_position.reg

现在是重要的部分,您当然会将 reg 复制到另一台计算机,但它必须是相同的操作系统(xp 到 xp,win 7 到 win 7 ...等)创建所需的文件夹然后运行两个 REG,但它会不起作用,因为资源管理器将再次重置注册表。我找到的解决方案是先关闭资源管理器,然后运行 ​​reg,然后再次运行资源管理器,瞧,它可以工作,windows 将接受另一台 PC 的计算机名称,并在下次登录时自动更新,所以不用担心。

@echo off
REM mkdir path\to\folder 

taskkill /f /im explorer.exe

reg import Taskbar-Toolbars-Backup.reg"
reg import taskbar_position.reg

start explorer.exe

就这些。

现在,如果文件夹路径将得到修复,那么您就可以开始了,但是如果您想在其他 PC 上实用地更改它,那么方法如下:

我找不到任何解决方案,所以我做了这个解决方法:首先我将任何文件夹的快捷方式创建到永久固定路径,例如,我将保存到 system32 或主文件夹的快捷方式。然后我们从头开始本指南,但不是使用要转换为工具栏的文件夹,而是将我们现在创建的快捷方式放在任务栏中(它将像文件夹一样工作并将其内容显示为一个文件夹就可以了)。现在您可以保存 reg 值的备份并将 reg 复制到其他 pc 并继续执行我之前解释的步骤。

如您所见,工具栏现在指向快捷方式,因此可以在任何计算机上使用相同的注册,您只需编辑快捷方式而不是注册。创建和编辑快捷方式很容易,并且有很多实用的指南和工具,所以我不会解释它。

当然,现在您必须为每个操作系统准备一个 reg,一个用于 xp,一个用于 win 7,另一个用于 win8.1,一个用于 win10,从现在开始您可以在任何地方使用这些 reg,您只需更改快捷方式

还有一件事; 如果您将快捷方式保存在 D:\ 中,现在您想将其更改为 C:\,会发生什么情况?您可以为此轻松编辑 reg,您只需更改两个字母(一个十六进制),您可以查看regedit二进制作为十进制,然后找到字母的位置,现在在 reg 文件中更改这两个字母,mydrive从现在开始,您可以通过替换所需驱动器的十六进制来轻松地更改注册mydrive。当然,您必须尊重保存在注册中的相同路径,例如,如果您将快捷方式保存在注册中,d:\path\to\folder那么您可以更改D驱动C器但使用相同的文件夹结构:\path\to\folder,所以它变成c:\path\to\folder

我认为有了这个,就没有必要解密该 reg 中的二进制文件,直到现在还没有人做过(而另一个 regStuckRects2他们解密了它;但是我认识的人还没有这样做)

资源


推荐阅读