Windows 任务栏不显示新项目

Windows 任务栏不显示新项目

从 Windows 7(也可能是 Vista)开始,我在将项目固定到任务栏时遇到了问题。任务栏的路径是%appdata%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar,但手动添加 .bat、.exe 或甚至粘贴 .lnk 都不会在任务栏上显示任何新内容,即使重新启动后也是如此。粘贴到Default用户的位置也无法解决任何问题。

为什么会这样?我将某些内容粘贴到这个位置后要做什么才能使其正常工作?

我对拖放不感兴趣,因为我编写了一个脚本,并且该脚本是批处理的,所以我实际上也不需要非批处理解决方案(例如,使用 vbs 在任务栏上创建项目)。

答案1

这是因为当固定某物时,固定的项目也会被注册。

不幸的是,正因为如此,批处理解决方案无法工作。然而,vbscript 可以使其工作。它也是一个脚本,并且像 .cmd 或 .bat 一样可以在其他计算机上工作并通过登录脚本工作。或者(但不太好)您可以使用 wscript 或 cscript 从批处理文件中执行脚本。

要将项目固定到任务栏,请使用以下脚本:

' print name of item

Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Set objShell = CreateObject(“Shell.Application”)
Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS)
strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path
Set objFolder = objShell.Namespace(strAllUsersProgramsPath & “\Accessories”)
Set objFolderItem = objFolder.ParseName(“Calculator.lnk”)
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
    Wscript.Echo objVerb
Next

并固定实际物品

Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Set objShell = CreateObject(“Shell.Application”)
Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS)
strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path
Set objFolder = objShell.Namespace(strAllUsersProgramsPath & “\Accessories”)
Set objFolderItem = objFolder.ParseName(“Calculator.lnk”)
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
    If Replace(objVerb.name, “&”, “”) = “Pin to Start Menu” Then objVerb.DoIt
Next

来源:https://blogs.technet.microsoft.com/deploymentguys/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script/

相关内容