Если вы с интересом и энтузиазмом следите за развитием Windows 8, олицетворяющей собой плоско-квадратное будущее операционных систем от Редмонда, вы знакомы с такой функцией, как меню Win+X, или Power User Tasks Menu. Я уже рассказывал вам, как оно работает, и как добавить туда свои собственные ярлыки — ‘вся правда о меню Win+X в Windows 8’. Это меню очень удобное, так как может сэкономить вам приличное количество времени на открытие ‘классической’ панели управления и других утилит администрирования — всё всегда под рукой:
В статье я рассказывал об утилите hashlnk и созданной мной утилите Win+X Menu Editor, использующей hashlnk и позволяющей вам буквально несколькими кликами изменить состав меню Win+X — добавить, изменить, удалить ярлыки в этом меню, а также отсортировать их в произвольном порядке. Если вам она пришлась по душе, у меня для вас есть отличная новость — последняя версия Win+X Menu Editor совместима с Windows 8 Release Preview.
Мы с вами знаем, что меню отображаются только ‘одобренные’ ярлыки, то есть ярлыки, содержащие в себе некий блок данных. Этот блок данных представляет собой хэш, рассчитываемый по нескольким компонентам. Напомню, что в Windows 8 Consumer Preview этот хэш рассчитывался из пути к файлу, на который ссылался ярлык, параметров командной строки, и некой постоянной текстовой строки. При отображении меню Win+X Проводник рассчитывал хэш для каждого ярлыка заново и сверял с тем, что записано в самом ярлыке. Если значения совпадали — ярлык считался одобренным.
В Windows 8 Release Preview Майкрософт внесла изменения в этот алгоритм. Изменения коснулись механизма обработки переменных окружения.
Предположим, в качестве целевого ярлыка используется путь и имя
[code]%SystemRoot%\Explorer.exe[/code]
В Consumer Preview Проводник ‘разворачивал’ %SystemRoot% в значение переменной окружения системы.
При этом буква диска в пути (С: в нашем случае) отбрасывалась и не использовалась при рассчете хэша. Из-за ошибки в коде этот механизм некорректно работал с архитектурно-зависимыми переменными окружения, такими как %ProgramFiles% и %ProgramFiles(x86)%. Из-за этого в ряде случаев ярлык мог не пройти одобрения и не отображался бы в меню Win+X.
В Windows 8 Release Preview механизм обработки поменялся, а ошибка — исправлена. Теперь путь к файлу, на который ссылается ярлык, прогоняется через строковую функцию поиска-и-замены. Если путь к файлу содержит в себе подстроку, совпадающую с одной из ‘известных папок’ (константы KNOWNFOLDERS, MSDN), то эта подстрока заменяется на GUID найденной ‘известной папки’.
Из нашего примера выше, %SystemRoot%\Explorer.exe разворачивается в C:\Windows\Explorer.exe. C:\Windows — это ‘известная папка’ FOLDERID_System, вместо неё будет подставлен GUID, и в расчете хэша будет использована следующая строка:
[code]{F38BF404-1D43-42F2-9305-67DE0B28FC23}\Explorer.exe[/code]
Рафаэль Ривьера доработал hashlnk, а ваш покорный слуга доработал Win+X Mednu Editor:
Теперь вы можете использовать утилиту как на Windows 8 Consumer Preview, так и на Windows 8 Release Preview.
И ещё, обратите внимание на то, что в release preview из меню Win+X исключены ‘сетевые подключения’ (Network Connections). Я лично ими пользуюсь, у меня есть необходимость менять IP-адрес компьютера. Если вам тоже нужен быстрый доступ к этому апплету из Win+X, добавит его не составит труда. Создайте ярлык на рабочем столе с командной строкой:
[code]explorer shell:ConnectionsFolder[/code]
И поместите его в одну из групп при помощи Win+X Menu Editor. После этого с рабочего стола ярлык можно удалить.
Скачать Win+X Menu Editor вы можете с Winaero.
Мне интересно, насколько востребована эта утилита. Расскажите, пользуетесь ли вы вообще меню Win+X, и какие ярлыки вы туда добавляете?
В статье использованы материалы из этого поста.