[an error occurred while processing this directive]
 
vremont.by
республиканская сеть компьютерных клиник

ремонт ноутбуков в вашем городе


Очень контекстное меню

Подавляющее большинство гиков в беседе высказывают откровенное «фу» в сторону Windows, в ярких красках расписывая преимущества «яблочно- пингвиньих» сред, однако при проверке эти достойнейшие системы, как выясняется, не установлены на их компьютерах даже в качестве второй системы. Да-да, практически все окно-ненавистники являются исключительно окно-пользователями и всю жизнь «собираются сменить систему», но не меняют. Не переживайте, господа, я вас понимаю. Хотя я использую дома не одну операционную систему, но Windows – моя основная рабочая среда. Есть ли смысл тратить время и силы на освоение альтернативы с нуля, если устраивающая в текущем состоянии ОС становится с каждой версией еще лучше?

Эти улучшения не всегда сразу заметны, но иногда попытки отката на предыдущие варианты «окошек» тяжело даются из-за каких-то мелких «рюшечек». Вы пробовали переименовать файл в Windows 7? Поумневший Эксплорер сразу выделяет имя файла без расширения, экономя ваше время и избавляя от нужды елозить мышкой и напрягать глаза, выделяя «всю эту строчку без точки перед расширением». Когда переименований за день накапливается несколько сотен, такая мелочь может сэкономить море времени и нервов. Есть и другие простые задачи, которые можно еще больше упростить и тем самым сделать свою жизнь немного комфортнее. Об одной из них мы сегодня и поговорим.

Как вы наверняка знаете, все сущности Windows являются объектами. Большую часть того, что мы видим на экране, можно контролировать с помощью разнообразных контекстных меню, настраиваемых с помощью редактора реестра или графического интерфейса. Например, если вам нужно создать на рабочем столе папку, это можно сделать с помощью контекстного меню проводника: щелкнуть по десктопу правой кнопкой мыши, выбрать в появившемся меню пункт «Создать» и нажать на «Папку» в выпадающем подменю. Наверное, разработчики сочли этот способ достаточно удобным, но лично мне кажется некомфортным каждый раз искать нужную строку в списке, целиться в нее мышью, а затем выбирать что-то еще. К тому же, меню может разворачиваться вверх или вниз, влево или вправо, в зависимости от того, по какой именно точке десктопа вы щелкнули. Было бы неплохо иметь для такой распространенной процедуры «быструю команду» в контекстном меню рабочего стола. Какие отличия мы получим на практике?

Действия пользователя в стандартном варианте:
1) Щелчок правой кнопкой мыши. Вызов контекстного меню.
2) Наведение курсора на подменю «Создать» - требуется внимание пользователя на «прицеливание».
3) Щелчок левой кнопкой мыши либо ожидание (пауза перед раскрытием меню).
4) Выбор пункта «папку» - второй сеанс «прицеливания».
5) Щелчок левой кнопкой мыши. Папка создана.

Действия пользователя с применением модифицированного меню:
1) Щелчок правой кнопкой мыши. Вызов контекстного меню.
2) Наведение мыши на пункт «Создать папку» - внимание практически не требуется, так как при любом положении меню нужный пункт будет ближайшим к курсору мыши.
3) Щелчок левой кнопкой мыши. Папка создана.

Хотя во втором варианте список действий укорочен менее чем вдвое, субъективная экономия усилий пользователя кажется гораздо более значительной. Так происходит, потому что мы исключили операции, требующие (для данной процедуры) максимального напряжения зрения и внимания, – поиск нужного пункта в меню и наведение курсора (относительно точного) на искомую строку.

Без практической реализации такие рассуждения кажутся лишь игрой ума и особой ценности не имеют, поэтому нужно реализовать их на практике, чтобы убедиться в их полезности. Опыты проводились над OS Windows 7. Вероятно, большая часть написанного ниже будет применима также к Windows Vista и Windows XP, однако проверить это вам придется самостоятельно.

Чтобы избежать установки лишних программ и библиотек на компьютер, для воплощения идеи ограничимся редактированием реестра Windows. Как вы знаете, контекстное меню объектов файловой системы Windows, таких как каталоги, диски, файлы, «Корзина», можно изменять с помощью редактора реестра. Возможно, для кого-то это станет новостью, но поверхность рабочего стола тоже является папкой файловой системы, а значит, ее меню можно отредактировать. Параметры, отвечающие за формирование меню, расположены в ветви реестра «HKEY_CLASSES_ROOT\DesktopBackground\Shell\». Кроме того, мы будем изменять ветвь «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\», в которой содержатся псевдонимы команд оболочки Windows. Перед началом изменений я рекомендовал бы вам экспортировать и сохранить эти разделы, чтобы в ходе экспериментов с оболочкой не привести компьютер в нерабочее состояние. Не помешает также создать точку сохранения.

Для начала стоит вспомнить, что практически все действия в Windows можно произвести с помощью клавиатуры. Если в данный момент активна оболочка Windows (то есть Explorer), то создать папку можно сочетанием горячих клавиш [Ctrl+Shift+N]. Способ хорош всем, кроме одного – многие не любят горячие клавиши и по-прежнему предпочитают пользоваться мышкой везде, где только возможно. Тем не менее, клавиатурными сокращениями мы воспользуемся, пусть даже без ведома пользователя.

Первым делом создадим два файла для изменения реестра. Первый из них назовем «AddNewFolderOption.reg» - он будет добавлять в контекстное меню десктопа опции для создания папок. Второй, «RemoveNewfolderOption.reg», будет убирать из реестра новые записи и, соответственно, удалять из контекстного меню созданные нами пункты.

Содержимое файла «AddNewFolderOption.reg»:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuItemFirst]
"MUIVerb"="Создать папку"
"icon"="explorer.exe,1"
"Position"="top"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuItemFirst\command]
@="wscript \"C:\\users\\Lecosson\\createfolder.vbs\""

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuItemLast]
"MUIVerb"="Создать папку"
"icon"="explorer.exe,1"
"Position"="bottom"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuItemLast\command]
@="wscript \"C:\\users\\Lecosson\\createfolder.vbs\""

Содержимое файла «RemoveNewfolderOption.reg»:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuItemFirst]
[-HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuItemFirst\command]
[-HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuItemLast]
[-HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuItemLast\command]

Опции в меню появились, но пока не работают. Для того, чтобы они начали действовать, нужно, чтобы исполнялась ассоциированная с ними команда. В нашем случае это запуск простого скрипта на VisualBasicScript. Самого скрипта пока нет, значит, его нужно написать. Создайте текстовый файл, переименуйте его в «createfolder.vbs» и поместите в него следующий текст:

Содержимое файла «createfolder.vbs»:

Set WshShell = CreateObject("Wscript.Shell")
WshShell.SendKeys "^+n"

Действие его, в сущности, примитивно – послать рабочему столу команду, имитирующую нажатие клавиш [Ctrl+Shift+N]. Как вы помните, такая комбинация клавиш отдает проводнику команду создать новую папку. Переместите этот скрипт в свою папку профиля пользователя (в Windows 7 по умолчанию это будет папка «C:\users\ Имя_пользователя\») и пользуйтесь новой, пускай простой и самодельной, но очень удобной возможностью. Строчку «MyProfileFolder» в путях, указанных в наших файлах реестра, нужно заменить на имя папки вашего профиля пользователя. Собственно, путь к файлу не обязательно должен быть именно таким, вы можете воспользоваться любым угодным вам местом на жестком диске.

На этом можно было бы и закончить, но осталась неописанной и неиспользованной еще одна возможность новой Windows в части настройки интерфейса. Теперь пользователь может создавать в контекстных меню Проводника вложенные меню. Грех забывать о таком удобном инструменте, тем более есть что править. Мне, например, мозолит глаз новая группа команд, предназначенная для настройки дисплея. Гаджетами я не пользуюсь вовсе, строчка «Персонализация» не вызывает ассоциаций с обоями рабочего стола, а разрешение экрана мало кто станет менять больше одного раза. По-моему, куда удобнее был старый добрый пункт «Свойства» из Windows XP. Теперь все настройки экрана разъехались по разным апплетам Панели Управления, но мы можем это исправить.

Способ, который я рекомендовал бы использовать, – те самые вложенные контекстные меню.

Для удобства правок воспользуемся тем же методом, что и раньше – создадим файлы правок реестра, которые при необходимости будут вносить и удалять изменения, вместо того чтобы каждый раз открывать Regedit и производить операции вручную. Я назвал файлы
«MoveScreenSettingsToSubmenu.reg» и «BringScreenSettingsBack.reg».

Содержимое файла «MoveScreenSettingsToSubmenu.reg»:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalize]
[-HKEY_CLASSES_ROOT\DesktopBackground\Shell\Gadgets]
[-HKEY_CLASSES_ROOT\DesktopBackground\Shell\Display]

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuDisplaySettings]
"MUIVerb"="Свойства"
"SubCommands"="Resolution;Gadgets;Personalization"
"icon"="desk.cpl"
"Position"="bottom"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Resolution]
@="Разрешение экрана"
"icon"="%SystemRoot%\\System32\\display.dll,-1"
"ControlPanelName"="Microsoft.Display"
"ControlPanelPage"="Settings"
"Position"="Bottom"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Resolution\command]
"DelegateExecute"="{06622D85-6856-4460-8DE1-A81921B41C4B}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Gadgets]
@="Гаджеты"
"Icon"="C:\\Program Files\\Windows Sidebar\\sidebar.exe,-100"
"Position"="Bottom"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Gadgets\command]
@="C:\\Program Files\\Windows Sidebar\\sidebar.exe /showGadgets"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Personalization]
@="Персонализация"
"HideInSafeMode"=""
"ControlPanelName"="Microsoft.Personalization"
"Position"="Bottom"
"icon"="%systemroot%\\system32\\themecpl.dll,-1"
"Position"="Bottom"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Personalization\command]
"DelegateExecute"="{06622D85-6856-4460-8DE1-A81921B41C4B}"

Содержимое файла «BringScreenSettingsBack.reg»:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\DesktopBackground\Shell\PersonalMenuDisplaySettings]

[HKEY_CLASSES_ROOT\DesktopBackground\Shell]
@=""

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Display]
@="Разрешение экрана"
"icon"="%SystemRoot%\\System32\\display.dll,-1"
"ControlPanelName"="Microsoft.Display"
"ControlPanelPage"="Settings"
"Position"="Bottom"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Display\command]
"DelegateExecute"="{06622D85-6856-4460-8DE1-A81921B41C4B}"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Gadgets]
@="Гаджеты"
"Icon"="C:\\Program Files\\Windows Sidebar\\sidebar.exe,-100"
"Position"="Bottom"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Gadgets\command]
@="C:\\Program Files\\Windows Sidebar\\sidebar.exe /showGadgets"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalize]
@="Персонализация"
"HideInSafeMode"=""
"ControlPanelName"="Microsoft.Personalization"
"Position"="Bottom"
"icon"="%systemroot%\\system32\\themecpl.dll,-1"
"Position"="Bottom"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalize\command]
"DelegateExecute"="{06622D85-6856-4460-8DE1-A81921B41C4B}"

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

Возможно, именно это изменение и не вносит ощутимого комфорта при работе за компьютером, но все-таки чуть-чуть снижает необходимость в концентрации внимания при частом использовании контекстного меню проводника. Для кого-то это может быть тем самым «последним кусочком паззла» при создании своего идеального рабочего окружения.

Возможно, что-то заработает не сразу. Есть вероятность, что вы не сможете удалить некоторые ключи реестра, созданные системой. Для этого нужно найти ветку реестра «HKEY_CLASSES_ROOT\DesktopBackground\Shell\», щелкнуть по ней правой кнопкой, выбрать пункт «разрешения», объявить себя владельцем данного контейнера и всех содержащихся в нем объектов (настроек реестра) и дать себе все права на редактирование. Это возможно, если у вас есть полномочия администратора.

Александр Поляков

© Компьютерная газета :: главная страница