Открытие недоступных из ТС элементов панели управления в Проводнике

Материал из TCKB 2.0

Перейти к: навигация, поиск
Q: В Totale можно открывать "панель управления" -> "все элементы панели управления", но если, допустим, нажать дальше на "Электропитание", то раздел откроется как пустая папка, а хочется чтобы открывалось в проводнике.
A: Решение с помощью VBS-скрипта (см. рекомендацию и параметр в шапке):
'=========================================== VBS ============================================
' Открыть в Проводнике недоступный в ТС элемент панели управления либо нажать Enter
' Рекомендация: назначить клавиатурную комбинацию с Enter для вызова пользовательской команды
' Параметр: %V
'============================================================================================
V = WScript.Arguments(0) : T = InStrRev(V, "\") : Set ShA = CreateObject("Shell.Application")
If T And Left(V, 2) = "\\" Then
  CD = Left(V, T)
  For i = 0 To 9
    P = "\\" & ShA.NameSpace("::{26EE0668-A00A-44D7-9371-BEB064C98683}\" & i).Self.Name & "\"
    If P = CD Then T = 0 : Exit For
  Next
  If T = 0 Then
  Select Case V
    Case P & "Автозапуск" GUID = "{9C60DE1E-E5FC-40F4-A487-460851A8D915}"
    Case P & "Архивация и восстановление" GUID = "{B98A2BEA-7D42-4558-8BD1-832F41BAC6FD}"
    Case P & "Брандмауэр Windows" GUID = "{4026492F-2F69-46B8-B9BF-5654FC07E423}"
    Case P & "Восстановление" GUID = "{9FE63AFD-59CF-4419-9775-ABCC3849F861}"
    Case P & "Датчик расположения и другие датчики" GUID = "{E9950154-C418-419E-A90A-20C5287AE24B}"
    Case P & "Диспетчер учетных данных" GUID = "{1206F5F1-0569-412C-8FEC-3204630DFB70}"
    Case P & "Домашняя группа" GUID = "{67CA7650-96E6-4FDD-BB43-A8E774F73A57}"
    Case P & "Значки области уведомлений" GUID = "{05D7B0F4-2121-4EFF-BF6B-ED3F69B894D9}"
    Case P & "Персонализация" GUID = "{ED834ED6-4B5A-4BFE-8F11-A626DCB6A921}"
    Case P & "Подключения к удаленным рабочим столам и приложениям RemoteApp" GUID = "{241D7C96-F8BF-4F85-B01F-E2B043341A4B}"
    Case P & "Программы по умолчанию" GUID = "{17CD9488-1228-4B2F-88CE-4298E93E0966}"
    Case P & "Распознавание речи" GUID = "{58E3C745-D971-4081-9034-86E34B30836A}"
    Case P & "Родительский контроль" GUID = "{96AE8D84-A250-4520-95A5-A47A7E3C548B}"
    Case P & "Система" GUID = "{BB06C0E4-D293-4F75-8A90-CB05B6477EEE}"
    Case P & "Счетчики и средства производительности" GUID = "{78F3955E-3B90-4184-BD14-5397C15F1EFC}"
    Case P & "Устранение неполадок" GUID = "{C58C4893-3BE0-4B45-ABB5-A63E4B8C8651}"
    Case P & "Учетные записи пользователей" GUID = "{60632754-C523-4B62-B45C-4172DA012619}"
    Case P & "Центр обновления Windows" GUID = "{36EEF7DB-88AD-4E81-AD49-0E313F0C35F8}"
    Case P & "Центр поддержки" GUID = "{BB64F8A7-BEE7-4E1A-AB8D-7D8273F7FDB6}"
    Case P & "Центр синхронизации" GUID = "{9C73F5E5-7AE7-4E32-A8E8-8D23B85255BF}"
    Case P & "Центр специальных возможностей" GUID = "{D555645E-D4F8-4C29-A827-D93C859C4F2A}"
    Case P & "Центр управления сетями и общим доступом" GUID = "{8E908FC9-BECC-40F6-915B-F4CA0E70D03D}"
    Case P & "Шифрование диска BitLocker" GUID = "{D9EF8727-CAC2-4E60-809E-86F80A666C91}"
    Case P & "Экран" GUID = "{C555438B-3C23-4769-A71F-B6D3D9B6053A}"
    Case P & "Электропитание" GUID = "{025A5937-A6BE-4686-A844-36FE4BEC8B6D}"
  End Select
  End If
End If
With CreateObject("WScript.Shell") If Len(GUID) Then .Run "shell:::" & GUID Else .SendKeys "~" End If End With

В данном случае в Проводнике будут открываться все недоступные элементы, начиная с Windows Vista, из всех подкаталогов панели управления.

В следующем скрипте запуск касается любого элемента из подкаталогов панели управления:

'==================================== VBS =====================================
' Открыть в Проводнике элемент панели управления под курсором либо нажать Enter
' Рекомендуется назначить в ТС клавиатурную комбинацию с Enter
' Параметр: %V
'==============================================================================
Option Explicit : Dim V, T, ShA, CD, i, F, Item, Name
V = WScript.Arguments(0) : T = InStrRev(V, "\")
Set ShA = CreateObject("Shell.Application")
If T And Left(V, 2) = "\\" And T <> Len(V) Then
  CD = Left(V, T) : Name = Mid(V, T + 1)
  For i = 0 To 9
    Set F = ShA.NameSpace("::{26EE0668-A00A-44D7-9371-BEB064C98683}\" & i)
    If CD = "\\" & F.Self.Name & "\" Then T = 0 : Exit For
  Next
  If T = 0 Then
    For Each Item in F.Items
      If Item.Name = Name Then Item.Verbs.Item(0).Doit : WScript.Quit
    Next
  End If
End If : CreateObject("WScript.Shell").SendKeys "~"

Данный скрипт в отличии от предыдущего сработает в Windows с любой локализацией.
Но минус его в том, что нужный элемент, например, апплета "Приступая к работе" придётся запускать уже в самом Проводнике.

Рекомендуемые горячие клавиши для любого из скриптов: Win+Enter или Win+Shift+Enter.

Flasher
07.10.2015

Личные инструменты
Реклама