Вся правда про меню Win + X в Windows 8
- Передісторія
- Час "Х" для меню Win + X
- Так як же додати власний ярлик в меню Win + X
- Створення нових груп програм в меню Win + X
- Кілька слів про імена пунктів меню Win + X
- Перейменування пункту меню Win + X з використанням файлу Desktop.ini
- Перейменування пункту меню Win + X з використанням коментаря ярлика
- вироблення овчинки
Однією з найбільш непоказних, але надзвичайно корисних функцій Windows 8 Consumer Preview (за відсутності щось меню Пуск, так) є меню [k] Win [/ k] + [k] X [/ k]. Ім'я своє воно отримало завдяки поєднанню клавіш, якими воно викликається, і ще відомо під сценічним псевдонімом "Power User Menu". Незважаючи на амбітне позиціонування, ні "повер", ні будь-якої ще користувач не зможе в це меню нічого додати. Система вперто ігнорує призначені для користувача ярлики. Давайте розберемося, звідки ростуть корені такої кричущої несправедливості, і спробуємо змінити ситуацію.
Передісторія
Встановивши Windows 8, я відразу виявив горезвісне меню, застосувавши свої вже добре відомі читачеві прийоми пошуку секретів Windows . І відразу ж з'ясував, що в цьому меню неможливо додати свої ярлики.
показував начебто очевидні речі - процес Explorer.exe мирно шерстить папку% LOCALAPPDATA% \ Microsoft \ Windows \ WinX, перечитуючи папку за папкою на предмет файлів з розширенням * .lnk. Я пробував підкласти туди свій ярлик, і Провідник, весело шурхотом не зовсім свіжим "ВД" 4хлетней давності, заковтнула наживку. Але натиснувши [k] Win [/ k] + [k] X [/ k], в списку програм я свого ярлика не виявив. При цьому Procmon не показував нічого специфічного або незвичайного.
Через брак належної кваліфікації і банально вільного часу я тимчасово залишив всякі спроби знайти спільну мову з цим меню, і покинув сируватий, що кишить потворними квадратними рибами середу бета-версії Windows для планшетів.
Час "Х" для меню Win + X
4го квітня широко відомий в певних колах блогер і хакер Рафаель Рівера зірвав покриви таємниці з принципів побудови злощасного меню. У своєму блозі Рафаель:
Пункти меню є звичайними ярлики (.lnk-файли), що знаходяться в папках виду Group <Цифра>. Ви не зможете додати сюди власні ярлики, тому що система відображає тільки "схвалені" ярлики. Чому? Та тому що Microsoft всіляко перешкоджає появі подібності меню "Пуск", яке так ретельно віддалялося з Windows 8, або використанню цього меню в якості аналога панелі Quick Launch з тих самих міркувань.
"Схвалений" ярлик, який отримав це прізвисько з легкої руки Рафаеля, - це звичайний lnk-файл, який містить в собі позначку в вигляді 4-хбайтного хешу, отриманого за кількома строковим значенням:
1. Повний шлях до файлу, на який посилається ярлик (наприклад, з: \ games \ quake3 \ qauke3.exe)
2. Аргументи запуску програми (в темі попереднього прикладу - + connect q3.playground.ru)
3. Третій рядок - це жорстко прошитий текст, буквальне вміст якого - "Do not prehash links. This should only be done by the user."
Поєднуючи ці три рядки воєдино, Windows призводить їх до нижнього регістра і вважає за ним хеш за допомогою функції. Цей хеш записується безпосередньо в сам .lnk-файл.
Більшість з нас сприймає ці файли як "звичайні ярлички", але на ділі - це складні об'єкти, описані в MSDN як. Ці об'єкти дозволяють зберігати масу додаткової інформації. Зокрема, вони підтримують зберігання структур даних типу "Ключ - значення", відомих як.
Саме тут і зберігається хеш ярлика:
DEFINE_PROPERTYKEY (PKEY_WINX_HASH, 0xFB8D2D7B, 0x90D1, 0x4E34, 0xBF, 0? 60, 0x6E, 0xAC, 0? 09, 0? 92, 0x2B, 0xBF, 0? 02);
Маючи в своєму розпорядженні цією інформацією, можна формалізувати наступний алгоритм побудови меню [k] Win [/ k] + [k] X [/ k]:
- Провідник послідовно перебирає папки% LOCALAPPDATA% \ Microsoft \ Windows \ WinX \ Group1-GroupN
- В одній папці він знаходить файли .lnk
- Якщо файли знайдені, для кожного файлу вважається хеш.
- Зчитується значення хеша з самого lnk-файлу і порівнюється з підрахованими в п.3. Якщо вони збігаються - ярлик вважається схваленим і відображається в меню [k] Win [/ k] + [k] X [/ k].
Так як же додати власний ярлик в меню Win + X
Цілком очевидно, що потрібно
- створити ярлик або взяти готовий з робочого столу, наприклад;
- помістити його в папку% LOCALAPPDATA% \ Microsoft \ Windows \ WinX \ Group1 (або створити свою папку / папки, наприклад Group4);
- записати хеш в цей ярлик.
Ось тільки останнім засобами Windows виконати не можна.
Рафаель для цих цілей реалізував консольную утиліту (), яка записує хеш в .lnk файл. Користуватися їй так:
[Code] hashlnk.exe "повний \ шлях \ к файлу.lnk" [/ code]
Після цього слід перезапустити Провідник . вуаля:
Увага! Під Windows 8 x64 помічений глюк - іноді потрібно застосувати hashlnk двічі, щоб доданий вами ярлик почав відображатися в меню [k] Win [/ k] + [k] X [/ k]. Просто запустіть утиліту два рази.
Створення нових груп програм в меню Win + X
Це дуже просто. За замовчуванням папка% LOCALAPPDATA% \ Microsoft \ Windows \ WinX містить три піддиректорії - Group1, Group2 і Group3. Ці папки, як ви вже здогадалися, і відображаються як групи в меню [k] Win [/ k] + [k] X [/ k]. Створіть папку Group4, щоб додати в нього нову групу. Створюючи папки за принципом Group <Максимальна цифра + 1>, ви можете додати стільки груп, скільки вам потрібно. Після цього в них можна розміщувати ярлики, не забуваючи застосувати hashlink.
Кілька слів про імена пунктів меню Win + X
Уважний читач напевно вже зазначив, що існує деяка різниця у відображенні програм в меню [k] Win [/ k] + [k] X [/ k] і в фізичному назві файлів. На зображенні вище ми бачимо, що друга група містить ярлики "Run", "Search" і т.п., але фізично файли мають зовсім інші імена!
Мені відомо два способи завдання імені пункту меню [k] Win [/ k] + [k] X [/ k].
Перейменування пункту меню Win + X з використанням файлу Desktop.ini
Це - класика жанру. Створимо в меню [k] Win [/ k] + [k] X [/ k] нову групу, і помістимо туди мій улюблений Far Manager.
Тепер створимо в цій же папці файл Desktop.ini з таким вмістом:
[Code] [LocalizedFileNames]
Far Manager 2 x64.lnk = Файловий менеджер [/ code]
Тобто в секції [LocalizedFileNames] потрібно прописати кожен ярлик у вигляді Ім'я файла.lnk = Коротке ім'я.
Увага! Щоб файл desktop.ini вступив в дію, потрібно встановити папці Group4 атрибут "Read only". Причому, засобами Провідника Windows 8 у вас цього зробити не вийде. Прапорець в "Властивості папки" відпрацьовує некоректно, ви можете в цьому переконатися самі. Тому я встановив горезвісний атрибут з Far Manager.
Після цього слід знову перезапустити Провідник . результат:
Подібним чином ви можете перейменувати будь-який з присутніх ярликів в меню [k] Win [/ k] + [k] X [/ k].
Перейменування пункту меню Win + X з використанням коментаря ярлика
Цей спосіб передбачає, що в файлі Desktop.ini немає запису для поточного ярлика, тому що desktop.ini має пріоритет над коментарем ярлика. Тому в демонстраційних цілях я видалю створений раніше desktop.ini, і продовжу експерименти над ярликом Far Manager.
Якщо у ярлика, що фігурує в меню [k] Win [/ k] + [k] X [/ k], присутній коментар (і для нього немає запису в desktop.ini, я підкреслюю це), то в меню з'явиться не ім'я ярлика , а саме його коментар.
Перезапустивши Провідник, отримуємо наступний результат:
вироблення овчинки
"Стільки метушні через якогось ярлика! Так овчинка вичинки не варта!" - обуриться читач, і буде правий. Я теж вважав таку кількість рухів тіла невиправданим, і тому створив програму, що дозволяє управляти складом ярликів меню [k] Win [/ k] + [k] X [/ k].
Це Win + X Menu Editor:
програма дозволяє
- Додавати і видаляти групи
- Додавати і видаляти ярлики
- Сортувати порядок відображення ярликів
- Можна повернути склад меню за замовчуванням.
З цією програмою ви можете налаштувати меню Win + X просто і швидко. Програма використовує утиліту hashlnk Рафаеля Рівери для генерації хеша ярликів.
Завантажити Win + X Menu Editor можна з або c Winaero (Сторінка англійською мовою).
Що ж, корпорація Майкрософт активно бореться з усім, що функціонально схоже з класичним меню "Пуск" і намагається мінімізувати можливості тонкої (та й "товстої", в общем-то, теж) настройки прийдешньої версії Windows. Подібно Windows Phone, в Windows 8 присутні механізми, що запобігають несанкціоновані модифікації системних файлів і навіть додавання ярликів, здатні загнати в ступор навіть бувалого любителя твиков і хаков.
Мені б хотілося почути думку читача щодо політики настройки системи. Чи вважаєте ви реалізацію подібних обмежень правильним кроком з боку Майкрософт? І ще, чи користуєтеся ви меню [k] Win [/ k] + [k] X [/ k]?
Чому?PKEY_WINX_HASH, 0xFB8D2D7B, 0x90D1, 0x4E34, 0xBF, 0?
X6E, 0xAC, 0?
X2B, 0xBF, 0?
Чи вважаєте ви реалізацію подібних обмежень правильним кроком з боку Майкрософт?
І ще, чи користуєтеся ви меню [k] Win [/ k] + [k] X [/ k]?