Главная > Уголок гика > Пара простых приемов поиска секретов Windows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Winreview.ru можно найти в Вконтакте, Facebook и Twitter. Присоединяйтесь!

Комментарии

  1. Vadim Sterkin

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

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

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

  2. Mphs

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

  3. Сергей Ткаченко

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

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

    Это снизит количество информации procmon и позволит более быстро обнаружить новые параметры. Стоит добавить это в статью.

  4. Nikita

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

    Как узнать какой программе принадлежит назначенное сочетание клавиш?

  5. Сергей Ткаченко

    @Nikita , спасибо, но функциональность штатного окна переключения задач меня вполне устраивает. Не вижу для себя ни одного веского повода использовать стороннее ПО.

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

    Именно поэтому я и рекомендовал отключить всё стороннее ПО перед поиском сочетаний.

  6. Dmitry Bulanov

    @Сергей Ткаченко

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

  7. Vadim Sterkin

    Сергей Ткаченко

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

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

  8. Сергей Ткаченко

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

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

  9. ЁжЫГ

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

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

  10. Сергей Ткаченко

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

  11. ЁжЫГ

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

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

  12. Сергей Ткаченко

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

Написать комментарий