Windows 8.1固定的TaskBar信息存储在哪里?


3

我指的是我们可以设置的底部图标,也可以单击以启动该程序的新实例或将其打开的窗口带入主视图。

enter image description here

我假设在注册表中的某处可能有一些条目链接到图像图标,并且它所代表的程序所在的位置存储在。

我想知道这一点,所以我可以在另一台机器上预设这些,而不是手动设置它们。

Answers:


3

“开始”屏幕和任务栏上有关固定项目的信息存储在以下键中:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{...}\Count

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TaskBand

不幸的是,所有键值都是加密的二进制blob,因此您无法直接编辑它们。此外,没有控制它的组策略。微软故意这样做是为了阻止应用程序供应商将他们的垃圾软件固定在你面前。我发现这个借口是可笑的,因为它并没有阻止阴暗的程序员表现得很糟糕,但是 让你成为一个合法的行政职能的痛苦。

以编程方式修改任务栏要求您编写一个脚本,该脚本模拟“开始”菜单上项目的右键单击并点击“从任务栏固定/取消固定”,如下所示:

Dim objShellApp
Dim objWMI
Dim objVerb
Dim objScreen
Dim objProcess
Dim colVerbs
Dim colScreens
Dim colProcesses

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set objShellApp = CreateObject("Shell.Application")
Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")

'Remove Windows Media Player from Taskbar
If objFS.FileExists(objShell.SpecialFolders("AllUsersPrograms") & "\Windows Media Player.lnk") Then
    Set colVerbs = objShellApp.Namespace(objShell.SpecialFolders("AllUsersPrograms")).ParseName("Windows Media Player.lnk").Verbs
    For Each objVerb in colVerbs
        If objVerb.Name = "Unpin from Tas&kbar" Then
            objVerb.DoIt
            Exit For
        End If
    Next
End If

'Add Microsoft Outlook to Taskbar
If objFS.FileExists(objShell.SpecialFolders("AllUsersPrograms") & "\Microsoft Office\Microsoft Outlook 2010.lnk") Then
    Set colVerbs = objShellApp.Namespace(objShell.SpecialFolders("AllUsersPrograms") & "\Microsoft Office").ParseName("Microsoft Outlook 2010.lnk").Verbs
    For Each objVerb in colVerbs
        If objVerb.Name = "Pin to Tas&kbar" Then
            objVerb.DoIt
            Exit For
        End If
    Next
End If

修改您想要固定/取消固定的任何项目的脚本。您需要此脚本在每个用户登录的上下文中运行。你不能批量做。因此,您必须将此脚本转储到每个用户的注册表配置单元中的RunOnce注册表项中。

或者,您可以在脚本文件的末尾添加一行,以便在完成后自动将其置于每个用户的Startup文件夹中(包括默认用户,以便在新用户登录时应用)。

objFS.DeleteFile WScript.ScriptFullName

无论哪种方式,您都不希望将其放在“所有用户”配置文件中。您需要确保它运行 只有一次 为每个人 在他们自己的用户环境中 并且永远不要再运行它(以免它破坏他们的自定义)。


感谢您的深入回答&剧本。由于加密,非常烦人的解决方法。希望其他方式出现,虽然我对此表示怀疑。
RogerPassfield
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.