![Windows 任务栏不显示新项目](https://linux22.com/image/1486763/Windows%20%E4%BB%BB%E5%8A%A1%E6%A0%8F%E4%B8%8D%E6%98%BE%E7%A4%BA%E6%96%B0%E9%A1%B9%E7%9B%AE.png)
从 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