Onde estão armazenadas as informações da barra de tarefas fixas do Windows 8.1?

3

Estou me referindo aos ícones inferiores que podemos definir e também clicar para iniciar uma nova instância desse programa ou trazer a janela aberta para a visualização principal.

Suponho que em algum lugar do registro talvez haja algumas entradas que apontam para um ícone de imagem e o local em que o programa que ele representa é armazenado em.

Eu quero saber isso para que possa configurá-los com facilidade em outra máquina, em vez de configurá-los manualmente.

    
por RogerPassfield 23.04.2015 / 01:23

1 resposta

3

As informações sobre itens fixos na tela inicial e na barra de tarefas são armazenadas nas seguintes chaves:

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

e

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

Infelizmente, todos os valores-chave são blobs binários criptografados, portanto você não pode editá-los diretamente. Além disso, não há política de grupo que a controle. A Microsoft fez isso deliberadamente para desencorajar os fornecedores de aplicativos a colocar seus produtos de sobra na sua cara. Eu acho essa desculpa risível, já que isso não impede que programadores obscuros se comportem mal, mas faz com que seja uma dor para você realizar uma função administrativa legítima.

Modificar a barra de tarefas programaticamente requer que você escreva um script que simule um clique com o botão direito do mouse sobre o item no menu Iniciar e clique em "Fixar / soltar da barra de tarefas" da seguinte forma:

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

Modifique o script para quaisquer itens que você queira fixar / desmarcar. Você precisará deste script para ser executado no contexto do logon de cada usuário. Você não pode fazer isso em massa. Portanto, você terá que despejar esse script na chave de registro RunOnce na seção de registro de cada usuário.

Ou, você poderia adicionar uma linha no final do arquivo de script para tê-lo cometer suicídio quando terminar e colocá-lo na pasta de inicialização de cada usuário (incluindo o usuário padrão para que seja aplicado quando novos usuários entrarem).

objFS.DeleteFile WScript.ScriptFullName

De qualquer forma, você não deseja colocá-lo no perfil Todos os usuários. Você precisa garantir que ele execute somente uma vez para cada pessoa em seu próprio contexto de usuário e nunca mais executá-lo novamente (para que não destruam suas personalizações).

    
por 23.04.2015 / 01:51