Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Всё о работе в Интернет" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Секреты Windows: статьи о реестре, rundll32.exe, программах Недокументированные возможности Windows XP. Реестр. Часть 6
Другие наши рассылки:
Новости нашего сайта:
Продолжение, начало в выпусках: 21 23 26 28 30 Книга "Недокументированные возможности Windows XP. Библиотека пользователя", Глава 2. Реестр Windows XP. Часть 5. Оболочка: Диалоги и Другие возможности Диалоги
Еще одной возможностью, которую предоставляет пользователям Windows, является редактирование различных списков стандартных диалогов операционной системы, а также скрытие некоторых вкладок диалогов не прибегая к использованию групповых политик и консоли управления безопасностью. Например, операционная система позволяет редактировать содержимое списка ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ на вкладке ВИД диалога СВОЙСТВА ПАПКИ, или содержимое списка ПАРАМЕТРЫ на вкладке ДОПОЛНИТЕЛЬНО диалога СВОЙСТВА: ИНТЕРНЕТ. Содержимое списков Для формирования содержимого некоторых списков стандартных диалогов Windows используется ряд стандартных параметров (о ветвях, использующихся для формирования списков стандартных диалогов, будет рассказано чуть позже). Эти параметры создаются в дочерних подпапках ветвей (одна подпапка — один элемент списка), формирующих конкретные списки диалогов и, как говорилось чуть выше, которые мы рассмотрим попозже. Итак, параметры. Text Данный параметр строкового типа определяет текст надписи, отображаемой в соответствующем списке диалога. Данная надпись отображается напротив подкаталога или флажка, который она идентифицирует. HKeyRoot Данный параметр типа DWORD определяет корневой раздел реестра, в котором находится тот параметр, который будет изменяться при изменении состояния соответствующего флажка или переключателя. Этот параметр может принимать следующие значения:
ValueName Данный параметр строкового типа определяет название параметра, который будет изменяться при изменении состояния соответствующего флажка или переключателя. RegPath Данный параметр строкового типа определяет остальной путь к ветви реестра, в которой будет находиться параметр, значение которого изменяется изменением состояния соответствующего флажка или переключателя. Как видите, этим и двумя предыдущими параметрами мы задали полный путь к параметру, значение которого будет изменяться соответствующим элементом списка. DefaultValue Данный параметр определяет значение по умолчанию изменяемого описываемым элементом списка параметра. Это значение используется в том случае, когда в указанной ветви реестра не существует параметра, значение которого изменяется данным элементом списка. Тип параметра DEFAULTVALUE зависит от типа изменяемого данным элементом списка параметра. Например, если изменяемый параметра имеет тип REG_SZ, то и параметр DEFAULTVALUE будет иметь тип REG_SZ. CheckedValue Данный параметр определяет значение, которое будет присвоено изменяемому параметру после установки соответствующего флажка или переключателя и нажатия кнопки ПРИМЕНИТЬ. Тип параметра CHECKEDVALUE, также как и тип предыдущего параметра, зависит от типа параметра, изменяемого данным элементом списка. UncheckedValue Если значение предыдущего параметра определяло значение изменяемого параметра при установке флажка или переключателя, то значение параметра UNCHECKEDVALUE определяет значение изменяемого параметра при сбросе флажка (естественно, что при создании переключателя этот параметр не используется, так как переключатель не имеет такого состояния, как сброшен). Тип параметра UNCHECKEDVALUE, также как и тип двух предыдущих параметров, зависит от типа параметра, изменяемого данным элементом списка. Bitmap Данный параметр строкового типа определяет путь к файлу рисунка, используемому для отображения подпапки в списке. К сожалению, нет никакой возможности изменить рисунок флажка или переключателя с помощью данного параметра. Mask Если в подразделе, определяющем соответствующий элемент списка, присутствует этот параметр DWORD-типа, то наш изменяемый параметр является битовой маской, и система должна не переписать параметр заново, а просто изменить один из его битов — именно битовая маска этого бита и указывается в данном параметре. Type Данный параметр строкового типа определяет, какой именно элемент списка мы создаем. Если значение этого параметра равно group, то будет создана подпапка. Если значение параметра равно checkbox, то будет создан флажок, а если значение этого параметра равно radio, то в списке появится переключатель. Вот и все параметры, используемые системой для формирования одного элемента списка некоторых из стандартных диалог. А теперь давайте перечислим все те ветви реестра, в которых могут находиться приведенные выше параметры, а также те диалоги, списком которых они соответствуют.
Например, мы можем добавить свой элемент списка в один из диалогов, чтобы больше не искать его в реестре при необходимости модификации (Рис. 2.16). Рисунок 1 Рис. 2.16. Добавление своих элементов списка диалогового окна Скрытие вкладок и других элементов диалогового окна А теперь давайте поговорим о параметрах реестра Windows, предназначенных для скрытия различных вкладок стандартных диалогов. В данном подразделе книги мы не будем упоминать о параметрах, используемых консолью mmc.exe — этому посвящена отдельная глава книги. Сейчас же мы рассмотрим параметры, используемые самой операционной системой, хотя их не так уж и много. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime Данная ветвь реестра содержит в себе сведения о серверах, используемых для синхронизации системных часов с указанным сервером времени. Но кроме этого данная ветвь реестра может содержать в себе параметр DWORD-типа SUPPORT INTERNET TIME. Если значение этого параметра равно 0, тогда из диалога ДАТА И ВРЕМЯ исчезнет вкладка ВРЕМЯ ИНТЕРНЕТ, которая как раз и применяется для настройки синхронизации системного времени с сервером Интернет. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig Данная ветвь реестра определяет настройки стандартной программы msconfig. И одним из параметров этой ветви может быть параметр DWORD-типа boot.ini. Если этот параметр действительно содержится в приведенной ветви реестра, тогда из программы msconfig.exe исчезнет вкладка BOOT.INI, предназначенная для облегчения создания данного файла в мультизагрузочных системах. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\«название программы» Данная ветвь реестра определяет всю информацию, необходимую для построения элемента списка апплета УСТАНОВКА/УДАЛЕНИЕ ПРОГРАММ, определяемого подразделом «название программы». Но мы не будем сейчас перечислять те параметры реестра, которые могут находиться в приведенной выше ветви. Нас больше интересуют несколько параметров данной ветви, с помощью которых можно заблокировать те или иные кнопки для соответствующего элемента списка.
Несмотря на то, что кнопка Удалить скрыта из диалога Установка/Удаление программ, программу по прежнему можно будет удалить с помощью команды rundll32.exe appwiz.cpl, WOW64Uninstall_RunDLL ,,,«название подраздела программы в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall». Другие возможности
Ниже будет приведено описание других параметров операционной системы Windows XP, которые не используются для настройки конфигурации значков или окон Windows, но, тем не менее, могут быть вам интересны. HKEY_CURRENT_USER\Control Panel\desktop Довольно интересной возможностью, которую позволяет выполнить операционная система Windows XP, является вывод сведений о версии Windows XP в правом нижнем углу экрана рабочего стола. Для реализации этой возможности достаточно присвоить параметру DWORD-типа PAINTDESKTOPVERSION значение, равное 1 (Рис. 2.17). Рисунок 2 Рис. 2.17. Отображение версии Windows в правом нижнем углу экрана Другой возможностью, которую предоставляет пользователям операционная система Windows, является вывод обоев Windows, начиная с определенной точки экрана. Для этого используются два параметра строкового типа WALLPAPERORIGINX и WALLPAPERORIGINY. Первый из этих параметров определяет смещение левого верхнего угла рисунка обоев от левого угла экрана. Второй же параметр определяет смещение левого верхнего угла рисунка обоев от верхнего угла экрана. Также с помощью данной ветви реестра можно проделать другой трюк — изменение количества строк и столбцов в выводимом после нажатия комбинации клавиш ALT+TAB диалоге. Для этого применяются два параметра строкового типа COOLSWITCHROWS и COOLSWITCHCOLUMNS. Первый из них определяет количество строк в диалоге, а второй — количество столбцов. Например, на рисунке 2.18 можно увидеть результат присвоения этим параметрам значений 3 и 3 (чтобы изменения вступили в силу, необходима перезагрузка компьютера или выход из системы — обычный перезапуск оболочки Windows не поможет). Рисунок 3 Рис. 2.18. Изменение количества строк и столбцов диалога HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey Данная ветвь реестра содержит в себе команды, которые будут выполняться при нажатии дополнительных клавиш клавиатуру, таких, например, как MY COMPUTER, CALCULATOR, E-MAIL, STOP и т.д. Не секрет, что не всегда функциональная возможность данных клавиш может быть необходима, например, если у вас нет доступа к Интернет, зачем вам такие клавиши быстрого доступа, как REFRESH, FORWARD, BACK, HOME? Поэтому предлагаю переопределить команды, вызываемые соответствующими клавишами, чтобы они вызывали вашу любимую игру или программу. Для этого нам необходимо определить формат содержимого приведенной выше ветви реестра — в этой ветви хранятся подразделы, названия которых определяют числовые идентификаторы, присвоенные клавишам быстрого доступа. А уже в этих подразделах содержится параметр строкового типа SHELLEXECUTE — именно в нем находится команда, которая будет выполняться при нажатии на соответствующую клавишу быстрого доступа. Структуру ветви реестра мы рассмотрели. Осталось только определить идентификаторы клавиш и названия самих клавиш, которые им соответствуют:
Например, чтобы присвоить дополнительной клавише BACK команду, открывающую вашу папку с играми, допустим, папку D:\Games, нужно присвоить параметру SHELLEXECUTE, расположенному в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\APPKEY\1, значение, равное explorer /root, d:\games. После изменения команд некоторых функциональных клавиш, у них появляется двойной набор команд. Чтобы показать это на примере, достаточно изменить команду клавиши, открывающей программу Outlook Express. Теперь если вы нажмете эту команду при установке фокуса на окне какой-либо папки, то по прежнему откроется окно Outlook Express. Но если вы нажмете клавишу, когда фокус установлен на рабочем столе или окне другой программы, тогда выполнится та команду, которую вы заложили в эту клавишу с помощью ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths Содержимое данной ветви реестра определяет все те команды, которые вы вводите в диалоге ВЫПОЛНИТЬ, чтобы открыть необходимую вам программу, которая расположена в каталогах, отличных от %systemroot%\system32 и %systemroot%. Например, если у вас на компьютере установлен графический пакет Photoshop, то для его вызова из диалога ВЫПОЛНИТЬ вы используете команду Photoshop. И несмотря на то, что, скорее всего, данный пакет установлен в одном из подразделов ветви %programfiles%, команда Photoshop все равно открывает его окно. Такой феномен возможен лишь потому, что в приведенной выше ветви реестра существует подраздел, имеющий название photoshop.exe (все подразделы приведенной ветви реестра должны оканчиваться расширением .exe, иначе определяемые ими псевдонимы команд работать не будут). А в этом подразделе существует параметр по умолчанию, содержащий в себе путь к программе, которая будет запускаться после ввода соответствующего ей псевдонима в диалоге ВЫПОЛНИТЬ. Что нам дает знание данной ветви реестра? Ну, если пофантазировать, то можно изменить название подраздела photoshop.exe на, допустим, ph.exe. Теперь мы сможем вызвать программу Photoshop вводом всего двух символов. А можно создать свой собственный псевдоним для любимой программы. Для этого нужно просто создать новый подраздел с любым названием (не забывайте, что подраздел должен оканчиваться расширением .exe) в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\APP PATHS. А после этого в параметре по умолчанию созданного нами подраздела нужно определить путь к своей любимой программе. Некоторые программы, кроме создания псевдонима, могут содержать в приведенной выше ветви реестра и другие параметры. Например, в ветви реестра (принадлежит программе установки других приложений) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Setup.exe может находиться параметр DWORD-типа RunAsOnNonAdminInstall. Если его значение равно 1, то при каждом запуске пользователем, не имеющим на это привилегий, программы Setup.exe для установки какой-нибудь программы, будет выводиться диалог Запуск от имени…, в котором можно зарегистрироваться под той учетной записью, которая имеет права на установку программ в системе. Точно такой же параметр может содержаться в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\winnt32.exe. Также данный параметр может содержаться в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\install.exe. Есть и еще один общий для всех подразделов параметр строкового типа — RunAsCommand. Если он присутствует в подразделе и его значение равно, допустим, 0, тогда ни один пользователь не сможет запустить программу, определяемую данным псевдонимом. Имеется в виду, что не сможет запустить не только из диалога Выполнить, но и с помощью ярлыков или самого файла программы (можно только с помощью консоли cmd.exe). HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced Данная ветвь реестра может содержать один интересный параметр DWORD-типа, который называется NEWDRAGIMAGES. Этот параметр может принимать значения 0 или 1. И в зависимости от используемого в нем значения вы сможете увидеть одно из изображений, приведенных на рисунке 2.19 (рисунок слева создан при копировании пункта меню ПУСК на рабочий стол с использованием значения параметра, равного 1, а рисунок справа создан при использовании значения параметра, равного 0). Рисунок 4 Рис. 2.19. Изменение способа отображения копируемого файла HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer Мы с вами уже рассматривали содержимое подраздела NAMESPACE данной ветви реестра, но кроме него данная ветвь корневого раздела HKEY_LOCAL_MACHINE имеет еще три подраздела: BACKUPPATH, CLEANUPPATH и DEFRAGPATH. Все эти ветви содержат в себе параметр по умолчанию, значение которого определяет команду, которая будет выполняться при нажатии той или иной кнопки на вкладке СЕРВИС диалога СВОЙСТВА: ДИСК (первый параметр определяет команду кнопки ВЫПОЛНИТЬ АРХИВАЦИЮ…, второй — ВЫПОЛНИТЬ ПРОВЕРКУ…, а третий — ВЫПОЛНИТЬ ОЧИСТКУ…). Например, если присвоить параметру по умолчанию подраздела BACKUPPATH значение, допустим, cmd.exe, тогда после нажатия кнопки ВЫПОЛНИТЬ АРХИВАЦИЮ… перед вами отобразится командный процессор cmd.exe. Конечно, пример с программой cmd.exe не совсем удачен, но если вы используете программы сторонних производителей для перечисленных выше действий, тогда именно их вызов можно присвоить параметром по умолчанию подразделов BACKUPPATH, CLEANUPPATH и DEFRAGPATH. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FindExtensions\Static Данная ветвь реестра определяет содержимое списка НАЙТИ меню ПУСК. Содержимое строится в таком формате: сначала идет набор подразделов, каждый из которых определяет одну команду меню ПУСК. Например, в приведенной ветви реестра могут находиться следующие подразделы:
Параметр по умолчанию каждого из этих подразделов определяет ActiveX-объект, который обрабатывает выбор соответствующей команды из меню НАЙТИ меню ПУСК. Кроме параметра по умолчанию подразделы могут содержать в себе другие подразделы, названия которых определяются в формате 0, 1, 2, 3… Параметр по умолчанию каждого из этих подразделов определяет соответствующую строку названия (если в подразделе не существует параметра строкового типа LOCALIZEDSTRING, значение которого, как мы знаем, всегда переопределяет параметр по умолчанию). При этом только значение параметра по умолчанию подраздела 0 может отображаться в качестве названия команды в списке НАЙТИ меню ПУСК. Каждый из подразделов 0, 1, 2…, в свою очередь, также должен содержать в себе подраздел, который называется DEFAULTICON. Параметр по умолчанию этого подраздела определяет иконку, отображаемую напротив названия команды подменю НАЙТИ меню ПУСК. Зачем нам все это нужно? Во-первых, для того, чтобы удалить ненужные команды подменю НАЙТИ меню ПУСК. А во-вторых, что уже интересней, чтобы добавить свои команды к данному меню. Например, давайте попробуем добавить к данному меню команду вызова апплета УСТАНОВКА/УДАЛЕНИЕ ПРОГРАММ. Для этого создаем подраздел с любым именем в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\FINDEXTENSIONS\STATIC и его параметру по умолчанию присваиваем значение {2559A1F7-21D7-11D4-BDAF-00C04F60B9F0}. После этого создаем дочерний подраздел с именем 0 и его параметру по умолчанию присваиваем строку названия, например, незамысловатое УСТАНОВКА/УДАЛЕНИЕ ПРОГРАММ. И наконец-то, в параметре по умолчанию подраздела DEFAULTICON, который мы создадим в дочернем подразделе, определяем путь к файлу рисунка, используемому в качестве иконки (Рис. 2.20). Рисунок 5 Рис. 2.20. Создание своей команды подменю Найти меню Пуск HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileAssociation Раз уж чуть выше речь зашла о меню ПУСК, тогда давайте поговорим еще о двух параметрах строкового типа, предназначенных для выполнения конфигурации нового меню ПУСК — ADDREMOVEAPPS и ADDREMOVENAMES. Первый из них определяет имена программ (пишутся через точку с запятой), которые не будут помещаться в новое меню ПУСК, сколько бы их не вызывали. Второй же содержит в себе части названия имен файлов, ссылки на которые не будут помещаться в новое меню ПУСК, сколько бы их не вызывали. HKEY_CURRENT_USER\Software\Microsoft\Java VM Еще одна интересная ветвь реестра, определяющая настройки консоли Java. К контексту данной главы эти настройки не сильно подходят. Все не сильно подходят, кроме одной, которая называется ENABLEJAVACONSOLE. Данный параметр имеет тип REG_BINARY и если его значение будет равно 1, тогда в своем меню ВИД проводника и браузера Internet Explorer вы сможете встретить команду ОКНО ЯЗЫКА JAVA, после нажатия на которую перед вами предстанет окно, подобное изображенному на рисунке 2.21. Автор данной книги не сильно разбирается в языке Java, поэтому судить о важности данной команды предоставляет читателям. Рисунок 6 Рис. 2.21. Добавление к меню Вид вызова консоли языка Java HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Данный подраздел используется для хранения настроек сервиса Winlogon — именно ему мы доверяем свой логин и пароль при входе в систему. Конечно, настройки Winlogon малопригодны для настройки оболочки, но все-таки, существует один параметр, который подходит к нашей теме. Этот параметр имеет строковой тип и называется BACKGROUND. Значение этого параметра определяет цвет фона, который будет использоваться для отображения рабочего стола при выводе диалога регистрации в системе (только, если используется классический вход в систему) и имеет уже знакомый нам формат R G B. Например, если присвоить этому параметру значение 0 0 0, то вместо стандартного голубоватого фона, мы получим строгий черный. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer Данная ветвь реестра содержит в себе очень интересный параметр DWORD-типа — MAXIMIZEAPPS. Если значение этого параметра будет равно 1, тогда все запускаемые вами программы будут открываться на весь экран. Предположительно, этот параметр используется для отображения на весть экран командной строки cmd.exe при использовании альтернативного входа в систему БЕЗОПАСНЫЙ РЕЖИМ С ИСПОЛЬЗОВАНИЕМ КОМАНДНОЙ СТРОКИ. HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Network\Persistent Connections Данная ветвь реестра содержит в себе параметр строкового типа SAVECONNECTIONS. Значение этого параметра определяет, будет ли операционная система по умолчанию создавать перманентные подключения к сетевым папкам и принтерам (перманентные подключения, это подключения, которые будут восстанавливаться после следующего входа пользователя в систему). Если значение параметра SAVECONNECTIONS равно no, то перманентные подключения создаваться не будут. По умолчанию значение данного параметра равно yes, хотя иногда это может нарушить систему безопасности (например, когда в системе используются скрытые сетевые ресурсы (заканчивающиеся на знак $) и при этом администратор не хотел бы, что пользователи знали о таких сетевых ресурсах). HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider Данная ветвь реестра может содержать в себе параметр DWORD-типа RESTORECONNECTION. По умолчанию значение этого параметра равно 0, что говорит о том, что Windows разрешено использовать фантомные подключения. Если значение данного параметра будет равно 1, то это будет запрещено. Фантомные подключения, это перманентные подключения, которые при входе пользователя в систему считаются восстановленными, хотя фактически система не выполняла их восстановление. Плюсом фантомных подключений является то, что такие подключения физически не восстанавливаются при входе пользователя, поэтому вход пользователя в систему будет быстрее. К тому же, если удаленный компьютер, доступ к которому система должна восстановить, в данный момент выключен, то система при входе пользователя не будет выводить диалог о недоступности компьютера (при отключении фантомных подключений операционная система будет выдавать сообщение о том, что она не смогла восстановить подключение, если необходимый компьютер недоступен). Минусом же фантомных подключений является небольшая задержка перед использованием фантомного подключения в первый раз — для того, чтобы система смогла физически установить подключение с удаленным компьютером. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares Раз уж мы заговорили о сети, тогда давайте немного продолжим эту тему. В предыдущей главе этой книги, в которой мы разговаривали о командах rundll32, упоминалась команда (даже несколько команд), с помощью которой можно было создать расшаренную папку. Но это не единственная возможность операционной системы, предназначенная для работы с расшаренными папками, ведь мы с вами уже знаем, что большую часть всей своей конфигурационной информации Windows хранит в реестре. И информация о расшаренных папках не является исключением — именно для ее хранения и применяется описываемая нами ветвь реестра. Данная ветвь содержит список параметров типа REG_MULTI_SZ, каждый из которых описывает один расшаренный ресурс (имя параметров равно названию расшаренной папке (см. рис.2.22)). Описание ресурса состоит из следующих строк (находятся в значении параметра):
Рисунок 7 Рис. 2.22. Хранение сведений о расшаренных папках Продолжение следует Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=117
|
В избранное | ||