3

Я имею в виду нижние значки, которые мы можем установить, а также нажимаю, чтобы либо запустить новый экземпляр этой программы, либо вывести его открытое окно в главное окно.

Я предполагаю, что где-то в реестре может быть несколько записей, которые ссылаются на значок изображения и место, в котором хранится программа, которую он представляет.

Я хочу знать это, чтобы можно было легко настроить эти параметры на другом компьютере, а не настраивать их вручную.

1 ответ1

3

Информация о закрепленных элементах на начальном экране и на панели задач хранится в следующих ключах:

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

а также

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

К сожалению, все значения ключей являются зашифрованными двоичными объектами, поэтому вы не можете редактировать их напрямую. Кроме того, нет групповой политики, которая контролирует ее. Microsoft сделала это намеренно, чтобы отговорить поставщиков приложений от того, что они навешивают на себя свое программное обеспечение. Я считаю , это оправдание смехотворно, так как это не останавливает теневые программистов от себя плохо на всех, но делает это боль для вас , чтобы выполнять законные административные функции.

Модификация панели задач программным способом требует написания скрипта, который имитирует щелчок правой кнопкой мыши по элементу в меню «Пуск» и нажатие кнопки «Закрепить / открепить на панели задач», например, так:

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

В любом случае, вы не хотите добавлять его в профиль «Все пользователи». Вы должны убедиться, что он запускается только один раз для каждого пользователя в его собственном пользовательском контексте, и никогда не запускать его снова (чтобы это не разрушило их настройки).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .