1

DoItVBScript を使用して「Sticky Notes」または「Snipping Tool」のショートカットをタスクバーに固定しようとすると、メソッドを呼び出すときに「指定されたファイルが見つかりません」というエラー メッセージが表示されます。ただし、他のショートカット (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"、電卓のショートカットがタスクバーに正常に固定されます。

これらの 2 つのショートカットでのみ失敗する理由が見つかりません。ショートカットを再作成して別の場所に移動しようとしましたが、ダブルクリックするとショートカット自体が機能することを確認しました。なぜこれが起こっているのか、または私が試したことのないアイデアを持っている人はいますか?


**編集* *

これは、2 台の追加の Windows 7 64 ビット PC と、1 台の Windows 7 32 ビット PC でテストされています。これらすべてが、Sticky Notes アプリケーションを正常にピン留めしました。Windows 7 64 ビット PC および 32 ビット PC の少なくとも 1 台は、影響を受ける 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 に答える