Sticky Notes或Snipping Tool上的FolderItemVerb.DoIt“无法找到指定的文件”

时间:2012-10-12 20:19:11

标签: vbscript windows-7-x64 taskbar

使用VBScript尝试将“Sticky Notes”或“Snipping Tool”快捷方式固定到任务栏,我在调用DoIt方法时收到错误消息“系统无法找到指定的文件”。但是,如果我固定任何其他快捷方式(例如Caclulator,Notepad,Internet Explorer,MS Word),那么脚本可以完美地工作。

Dim Application, FileSystem, Shell, PinnedFolder, PinnedItem, Verb, Shortcut
Set Application = CreateObject("Shell.Application")
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Set Shell = CreateObject("WScript.Shell")
Set Shortcut = FileSystem.GetFile(Shell.ExpandEnvironmentStrings("%ProgramData%\Microsoft\Windows\Start Menu\Programs\Accessories\Sticky Notes.lnk"))
Set PinnedFolder = Application.Namespace(Shortcut.ParentFolder.Path)
Set PinnedItem = PinnedFolder.ParseName(Shortcut.Name)

For Each Verb In PinnedItem.Verbs
    If "Pin to Tas&kbar" = Verb.Name Then
        Verb.DoIt
    End If
Next


例如,如果我将路径更改为"%ProgramData%\Microsoft\Windows\Start Menu\Programs\Accessories\Calculator.lnk",那么会抛出错误,并且计算器的快捷方式已成功固定到任务栏。

我找不到任何理由为什么这只会在这两个快捷方式上失败。我已经尝试重新创建快捷方式,将它们移动到不同的位置,并且我已经验证了双击时快捷方式本身的工作原理。有谁知道为什么会发生这种情况或有任何想法我还没试过?


**编辑* *

现在已经在另外两台Windows 7 64位PC和一台Windows 7 32位PC上进行了测试。所有这些都成功地固定了Sticky Notes应用程序。至少有一台Windows 7 64位PC和32位PC具有与受影响的PC相同的设置,软件和环境。然而,原始PC仍然存在问题。

1 个答案:

答案 0 :(得分:0)

您的代码适用于我的Windows7 x64系统。但是,尝试这个(也适用于我的)。

Dim Application, FileSystem, Shell, PinnedFolder, PinnedItem, Verb, Shortcut
Set Application = CreateObject("Shell.Application")
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Set Shell = CreateObject("WScript.Shell")
Set Shortcut = FileSystem.GetFile(Shell.ExpandEnvironmentStrings("%windir%\system32\StikyNot.exe"))
Set PinnedFolder = Application.Namespace(Shortcut.ParentFolder.Path)
Set PinnedItem = PinnedFolder.ParseName(Shortcut.Name)

For Each Verb In PinnedItem.Verbs
    If "Pin to Tas&kbar" = Verb.Name Then
        Verb.DoIt
    End If
Next

如果这不起作用,请尝试以管理员身份运行它。