1

DoIt使用 VBScript 尝试将“便笺”或“截图工具”快捷方式固定到任务栏,当我调用该方法时,我收到错误消息“系统找不到指定的文件” 。但是,如果我固定任何其他快捷方式(例如 Caclulator、记事本、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"then 它不会引发错误,并且 Calculator 的快捷方式已成功固定到任务栏。

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


**编辑* *

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

4

1 回答 1

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

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

于 2012-10-14T07:35:29.467 回答