web-dev-qa-db-ja.com

Windows 8.1の固定タスクバー情報はどこに保存されますか?

設定できる下部のアイコンを参照しています。また、クリックして、そのプログラムの新しいインスタンスを開始するか、開いているウィンドウをメインビューに表示します。

enter image description here

レジストリのどこかに、画像アイコンとそれが表すプログラムが保存されている場所にリンクするエントリがあると思います。

手動で設定するのではなく、別のマシンで簡単にプリセットできるように、これを知りたいです。

3
RogerPassfield

スタート画面とタスクバーに固定されたアイテムに関する情報は、次のキーに保存されます。

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{...}\Count

そして

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TaskBand

残念ながら、すべてのキー値は暗号化されたバイナリBLOBであるため、直接編集することはできません。さらに、それを制御するグループポリシーはありません。マイクロソフトは、アプリベンダーが自分のクラップウェアをあなたの顔に固定するのを思いとどまらせるために、意図的にこれを行いました。怪しげなプログラマーが悪い振る舞いをするのをまったく止めないので、この言い訳は笑えると思いますが、doesあなたが合法的な管理機能を実行するのを苦痛にします。

タスクバーをプログラムで変更するには、スタートメニューの項目の右クリックをシミュレートし、次のように[タスクバーからピン留め/ピン留め解除]をクリックするスクリプトを作成する必要があります。

Dim objShellApp
Dim objWMI
Dim objVerb
Dim objScreen
Dim objProcess
Dim colVerbs
Dim colScreens
Dim colProcesses

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set objShellApp = CreateObject("Shell.Application")
Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")

'Remove Windows Media Player from Taskbar
If objFS.FileExists(objShell.SpecialFolders("AllUsersPrograms") & "\Windows Media Player.lnk") Then
    Set colVerbs = objShellApp.Namespace(objShell.SpecialFolders("AllUsersPrograms")).ParseName("Windows Media Player.lnk").Verbs
    For Each objVerb in colVerbs
        If objVerb.Name = "Unpin from Tas&kbar" Then
            objVerb.DoIt
            Exit For
        End If
    Next
End If

'Add Microsoft Outlook to Taskbar
If objFS.FileExists(objShell.SpecialFolders("AllUsersPrograms") & "\Microsoft Office\Microsoft Outlook 2010.lnk") Then
    Set colVerbs = objShellApp.Namespace(objShell.SpecialFolders("AllUsersPrograms") & "\Microsoft Office").ParseName("Microsoft Outlook 2010.lnk").Verbs
    For Each objVerb in colVerbs
        If objVerb.Name = "Pin to Tas&kbar" Then
            objVerb.DoIt
            Exit For
        End If
    Next
End If

固定/固定解除するア​​イテムのスクリプトを変更します。このスクリプトは、各ユーザーのログオンのコンテキストで実行する必要があります。まとめて行うことはできません。したがって、このスクリプトを各ユーザーのレジストリハイブのRunOnceレジストリキーにダンプする必要があります。

または、スクリプトファイルの最後に行を追加して、スクリプトファイルが完了したときに自殺させ、すべてのユーザーのスタートアップフォルダーに配置することもできます(デフォルトユーザーを含むため、新しいユーザーがサインインしたときに適用されます)。

objFS.DeleteFile WScript.ScriptFullName

いずれにせよ、すべてのユーザープロファイルに入れたくありません。あなたはそれが実行されることを確認する必要があります一度だけ各人のために彼ら自身のユーザーコンテキストでそしてそれを二度と実行しないでください(それが彼らのカスタマイズを破壊しないように)。

3
Wes Sayeed