Пара простых приемов поиска секретов Windows

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

Я хочу с вами поделиться парой совсем простых приёмов, используя которые, можно быстро найти новые сочетания клавиш, и секретные твики. Я воспользуюсь Windows 8 Developer Preview в качестве примера. Если вам интересно - прошу под кат.

Как найти новые глобальные горячие клавиши

Это очень просто. Суть поиска глобальный сочетаний клавиш сводится к следующему алгоритму:

  • Берем сочетание клавиш, ну например [k]Win[/k]+[k]B[/k], и пытаемся его зарегистрировать API-функцией RegisrterHotkey.
  • Если получилось - сочетание не занято, "отпускаем" его при помощи UnregisterHotkey. Если нет - вуаля, это сочетание занято операционной системой или какой-либо сторонней программой. В нашем случае сочетание  [k]Win[/k]+[k]B[/k] будет занято, так как оно используется Проводником для передачи фокуса в область уведомлений (трэй).

Если слова  API-функция и  RegisrterHotkey для вас звучат как шелест листьев ветреным осенним днем, и тяги к программированию ради такой задачи у вас не возникает, вы можете воспользоваться программой Ethervane ActiveHotkeys. Она формирует список горячих клавиш, глобально зарегистрированных в системе.

Перед поиском глобальных горячих клавиш есть смыл закрыть все программы, в особенности те, что регистрируют глобальные хоткеи - Punto Switcher, ICQ, а также отключить регистрацию глобальных хоткеев в драйверах ваших устройств, если таковые имеются (софт интегрированных видеокарт Intel, например, вешает глобальные клавиши на поворот экрана). Это необходимо сделать для того, чтобы в список системных хоткеев, который является нашей целью, не затесались сочетания клавиш от стороннего ПО. После этого запускаете ActiveHotkeys.

Слева выбираете, какие клавиши/группы клавиш тестировать на предмет участия в сочетаниях, справа будет построен список найденных сочетаний.

После того, как список построен,  нажмите [k]F5[/k], чтобы в нем остались только "активные" сочетания, т.е. задействованные операционной системой глобально. Бинго!  Теперь вы - обладатель полного списка горячих клавиш операционной системы. Что делает конкретное сочетание клавиш, можно выяснить, банально нажав его на клавиатуре.

В ходе подготовки этой части статьи я открыл для себя новое сочетание [k]Ctrl[/k]+[k]Alt[/k]+[k]Tab[/k]. При его нажатии  окно переключения между приложениями не пропадает, а остается на экране, и перемещаться между миниатюрами приложений можно при помощи стрелок на клавиатуре или клавиши Tab. Выбор приложения осуществляется мышкой или клавишей Enter. Довольно удобно, не нужно удерживать нажатыми на клавиатуре  [k]Alt[/k]+[k]Tab[/k]. Этот хоткей появился ещё в Windows Vista, но для меня до сих пор оставался незамеченным.

 Как найти секретные твики и параметры реестра

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

  • Завершается процесс, работа с реестром которого нас интересует.
  • Запускается программное обеспечение, отслеживающее изменения в системном реестре. Я использую Sysinternal Process Monitor . В нем настраиваются фильтры, как минимум имя процесса, который будет отслеживаться.
  • Запускается мониторинг, и следом запускается исследуемое приложение.
  • В полученных результатах мониторинга анализируются записи, у которых результат - ключ/параметр не найден.

В качестве демонстрации я покажу  мониторинг Проводника Windows 8 Developer Preview. Я попытаюсь отследить, какие ключи реестра процесс Explorer.exe не может найти в ветке HKCU\ и ниже.

  • Запустите Process Monitor. Совет: если он у вас сразу "подвис", мониторя события, нажмите [k]Ctrl[/k]+[k]E[/k] - это остановит мониторинг событий и даст вам возможность спокойно настроить фильтр.
    Укажите в качестве параметров фильтра ([k]Ctrl[/k]+[k]L[/k]) следующие настройки и нажмите OK:

    Значения фильтра можно прочитать так:  включать все события, результат которых - не "Успех", путь в реестре включает в себя строку HKCU и имя процесса включает в себя строку explorer.exe. Можно поставить более жесткие фильтры и разбить анализ на несколько этапов, например, отдельно проанализировать ветку HCKU\Software\Microsoft\Windows, отдельно ветку HCKU\CLSID, ну и так далее. Это снизит количество информации procmon и позволит более быстро обнаружить новые параметры.
  • Завершите работу Проводника.
  • Нажмите  [k]Ctrl[/k]+[k]E[/k] в Process Explorer.
  • Запустите Проводник, например, при помощи Диспетчера задач.

Вы без труда найдете секретный параметр под названием YouBettaHideYoPearl , отключающий оба интерфейса Windows 8.

Сложность заключается в том, чтобы проверить найденные параметры в действии. Их придется создавать вручную и искать изменения в поведении системы. Я рекомендую проводить подобные эксперименты на специально установленной для этих целей копии Windows 8. Установка Windows 8 в VHD как раз отлично подходит.


Описанные в статье приёмы, безусловно, не претендуют на крэш-курс "В хакеры за полчаса", и их просто недостаточно, чтобы раскопать всё, что припрятали разработчики от глаз и шаловливых ручонок пользователей. И тем не менее, вы сможете найти для себя немало интересного, выполнив эти простые шаги.

Если вы знаете более эффективные приемы поиска секретов Windows - прошу в комментарии.

💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.

Судя по тому, что вы читаете этот текст, вы дочитали эту статью до конца. Если она вам понравилась, поделитесь, пожалуйста, с помощью кнопок ниже. Спасибо за вашу поддержку!

Автор: Сергей Ткаченко

Сергей Ткаченко создал этот сайт в далёком 2009 году, и с тех пор продолжает над ним работать, публикуя новые материалы о Windows и её приложениях практически каждый день.

Пара простых приемов поиска секретов Windows: 12 комментариев

  1. Отлично! Видны навыки программиста 🙂

    Поиском горячих клавиш никогда не занимался, но метод интересный. CTRL+ALT+TAB пользуюсь крайне редко, когда уж слишком много окон открыто и нужно время, чтоб разобраться 🙂

    Отслеживание реестра тоже хороший вариант, но я чаще смотрю ACCESS DENIED 🙂

  2. Это интересно! Спасибо! Поиск твиков явно для гиков, к тому же с кучей свободного времени, ибо найти что-либо в миллиардах обращений прокмона к реестру надо постараться. Нет, прожка в 5kb конечно не вызовет проблем, но проводник или какой-нибудь IE — это труба 🙂

  3. @Vadim Sterkin спасибо. Не очень мне ясно, как ACCESS DENIED поможет, когда ключа/параметра попросту нет. Результат в ProcMon отображается в этом случае как NOT FOUND.

    @Mphs Всех твиков не отследить даже при наличии свободного времени. Но можно поставить более жесткие фильтры и разбить анализ на несколько этапов, например, отдельно проанализировать ветку HCKU\Software\Microsoft\Windows, отдельно ветку HCKU\CLSID, ну и так далее.
    Это снизит количество информации procmon и позволит более быстро обнаружить новые параметры. Стоит добавить это в статью.

  4. Сергей, для удобного переключения между окнами запущенных приложений рекомендую VistaSwitcher (www.ntwind.com).
    Как узнать какой программе принадлежит назначенное сочетание клавиш?

  5. @Nikita , спасибо, но функциональность штатного окна переключения задач меня вполне устраивает. Не вижу для себя ни одного веского повода использовать стороннее ПО.
    Узнать, какой именно программе принадлежит сочетание клавиш, невозможно в принципе. Операционная система не предоставляет никаких механизмов, сообщающих, какая программа зарегистрировала за собой хоткей, увы.
    Именно поэтому я и рекомендовал отключить всё стороннее ПО перед поиском сочетаний.

  6. @Сергей Ткаченко
    Вообще, для поиска различных твиков PrоcMon можно отнести к утилитам из разряда «must have». Помимо фильтрации по разделам реестра иногда сильно помогает фильтрация по самим процессам. По крайней мере, мне такая фильтрация очень много раз помогала 🙂

  7. Сергей Ткаченко :
    Не очень мне ясно, как ACCESS DENIED поможет, когда ключа/параметра попросту нет. Результат в ProcMon отображается в этом случае как NOT FOUND.

    А я и не говорил, что использую для тех же целей, что и ты. ACCESS DENIED помогает понять, куда нет прав на доступ, если приложение выдает неинформативную ошибку.

  8. @Dmitry Bulanov Полностью согласен. Фильтр по разделу я поставил для примера, дабы быстро «найти и показать». В реальных условиях фильтр по ветке реестра можно не ставить, вместо этого следует запастись временем для анализа результатов 🙂

    @Vadim Sterkin А уж я-то подумал, что что-то упустил. Буду иметь ввиду.

  9. В тему — помнится когда попал в список тестеров одной игрушки, пришлось поставить себе программу граббер-скриншотов, и вот помню, как она ругалась при каждом запуске что такие-то горячие клавиши заняты таким-то приложением… Вот только название вспомнить не смог 🙁

    (хотя может я просто запамятовал, за давностью лет, и она сообщала о занятости, не указывая занявшее приложение, но точно помню, что у пунты пришлось убрать пару ненужных мне, но нужных той софтине сочетаний, и узнал я о том что именно пунту нужно мучать как-то…)

    1. Если я правильно себе представляю механизм регистрации и обработки сочетаний клавиш глобально, то такое технически нереализуемо. Горячая клавиша — это сообщение окну. Сказать, какое окно на это сообщение отреагирует, нельзя.

  10. значит все-таки запамятовал… эээх память моя девичья…

    а горячие клавиши которым назначены какие либо задачи или ярлыки? окон же нет…

    1. Эти сообщения обрабатывает окно Проводника, который и запускает их.

Обсуждение закрыто.

css.php