Все выпуски  

Секреты Windows: статьи о реестре, rundll32.exe, программах


Глава 2. Интерфейс Windows Vista. 2.3. Настройка проводника. Настройка проводника с помощью реестра и других малоизвестных возможностей
Дата: 11 марта 2009, среда

Полезные ссылки

"Журнал Эффективная работа на компьютере"- компьютер для начинающих.
Бесплатный Журнал Эффективная работа на компьютере. Научитесь грамотно работать с полезными и нужными утилитами, узнайте что-то новое для себя из авторских статей. Ни на одном форуме вам не расскажут, того что могу дать вам я. Ведь видеоматериал усваивается человеком в несколько раз лучше, чем обычный печатный текст. В статьях и уроках используется мой личный опыт, а не пустая переписка текстов с сайтов, которая возможно даже не работает! Прежде чем что-то сообщить, я проверяю действие тех или иных программ и методов, выявляю их эффективность. И только после этого преподношу это вам.

С уважением Артём Ющенко.

Адрес сайта http://artomu.com
E-mail: admin@artomu.com

В конец записи

Изменение расположения значка диска в папке Мой компьютер В Windows Vista по умолчанию используется следующих порядок именования томов диска: имя диска или метка диска, буква диска. В некоторых случаях такой порядок именования бывает неудобен. Например, когда из-за длинной метки или имени диска, буква диска не отображается.

К счастью, с помощью реестра можно управлять расположением буквы диска. Для этого применяется параметр REG_DWORD типа ShowDriveLettersFirst, расположенный в ветви реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer. По умолчанию значение данного параметра равно 0, однако его можно изменить на 4. В этом случае буква диска будет отображаться перед его меткой. Также значение данного параметра можно изменить на 2, что приведет к скрытию буквы диска из его имени.

Добавление команд Encrypt/Decrypt к контекстному меню файлов Если вы часто пользуетесь стандартной возможностью операционной системы по шифрованию файлов, тогда к контекстному меню файла или папки можно добавить команду ENCRYPT, с помощью которой легко выполняется шифрование файлов. Для этого достаточно в ветви реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced создать параметр REG_DWORD типа EncryptionContextMenu и присвоить ему значение 1.

Скрытие и отображение ActiveX-объектов в папке Мой компьютер Как и в предыдущих операционных системах Windows, в Windows Vista можно добавить к содержимому папки МОЙ КОМПЬЮТЕР свой ActiveX-объект, либо удалить уже существующий ActiveX-объект.

Чтобы отобразить элемент в папке МОЙ КОМПЬЮТЕР, нужно в ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace создать подраздел с названием, соответствующим CLSID-номеру необходимого ActiveX-объекта.

Если же необходимо удалить определенный элемент из папки МОЙ КОМПЬЮТЕР конкретного пользователя, тогда нужно воспользоваться ветвью реестра HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideMyComputerIcons. В данной ветви достаточно создать параметр REG_DWORD типа, название которого должно соответствовать CLSID-номеру ActiveX-объекта, а значение параметра должно быть равно 1.

Изменение значка определенного раздела диска, а также метки, используемой им по умолчанию Другой возможностью, которую предоставляет пользователям операционная система Windows Vista, является изменение значка для определенного диска, а также метки, отображаемой для данного диска, если метка не задана с помощью диалога PROPERTIES данного диска.

Для этих задач применяется ветвь реестра HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\«буква диска».

Чтобы изменить значок диска, нужно в параметре по умолчанию подраздела DefaultIcon данной ветви реестра указать путь к новому значку.

Чтобы изменить метку диска, нужно в параметре по умолчанию подраздела DefaultLabel данной ветви реестра указать название метки.

Например, на рисунке 2.24 отображен результат изменения значка и метки диска при помощи подразделов DefaultIcon и DefaultLabel ветви реестра HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\c.


Рис. 2.24. Изменение значка диска

Изменение действия, выполняемого при перемещении файла между папками

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

  • 1 — при перемещении файла между папками, выполнить его копирование;
  • 2 — при перемещении файла между папками, выполнить его перемещение;
  • 4 — при перемещении файла между папками, выполнить создание его ярлыка.

Но где же создавать этот параметр? Если вы хотите изменить действие по умолчанию для файлов всех известных расширений, тогда данный параметр нужно создать в ветви реестра HKCR\*. Если же вы хотите изменить действие по умолчанию для файлов конкретного расширения, тогда данный параметр нужно создавать в ветви реестра HKCR\«идентификатор расширения».

Изменение значка, отображаемого напротив кнопки группировки окон проводника в панели задач В операционной системе Windows вы можете настроить даже такую мелочь, как значок кнопки группировки окон проводника, отображаемый в панели задач, когда определенное количество окон проводника не помещается на панели задач и операционная система группирует все кнопки окон в одну. Для этого нужно указать путь к новому значку в параметре строкового типа TaskbarGroupIcon, расположенном в ветви реестра HKCR\Applications\explorer.

Кстати, также вы можете изменить изображение, отображаемое напротив кнопки окна проводника в панели задач. Для этого нужно указать путь к новому значку в параметре строкового типа OpenIcon ветви реестра HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon.

Изменение содержимого вкладки Details диалога свойств файлов и папок, а также подсказок к файлам В операционных системах семейства Windows каждый файл имеет набор метаданных, описывающих такие его свойства, как размер, дату создания, автора и т.д. Это очень удобная возможность, но ей не хватает гибкости. Например, на вкладке DETAILS диалога PROPERTIES для dll-файлов нет сведений об описании библиотеки, хотя эти сведения могут понадобиться администраторам. К счастью, с помощью реестра существует возможность определения метаданных, которые будут отображаться на вкладке DETAILS или при выводе описания файла.

Для этого служат параметры строкового типа FullDetails и InfoTip. Первый из них определяет метаданные, которые будут отображаться на вкладке DETAILS диалога PROPERTIES, а второй определяет метаданные, которые будут отображаться при выделении файла или папки (и при удержании указателя мыши над файлом). Оба этих параметра имеют одинаковый формат значений: сначала идет слово prop:, а после него через точку с запятой пишутся метаданные. Никаких пробелов в значении параметров быть не должно. Ниже приведен список самых часто используемых метаданных.

System.Attributes. Отображает присвоенные файлу или папке атрибуты (поле attributes).
System.Author. Отображает имя автора файла (поле author).
System.Capacity. Отображает общий объем папки или диска (поле Total Size).
System.ComputerName. Отображает имя компьютера (поле Computer).
System.Comment. Отображает комментарий к файлу (поле Comment).
System.Copyright. отображает данные об авторских правах на файл (поле Comment).
System.DateModified. Отображает дату изменения файла (поле Date Modified).
System.DateCreated. Отображает дату создания файла (поле Date Created).
System.DateAccessed. Отображает дату последнего доступа к файлу (поле Date Accessed).
System.DisplayName. Отображает имя файла (поле Display Name).
System.DisplayFolder. Отображает путь к папке, в которой хранится файл (поле Display Folder).
System.DisplayType. Отображает описание типа файла (поле Display Type).
System.FileCount. Отображает количество файлов в папке или на диске (поле File Count).
System.FreeSpace. Отображает количество свободного места на диске (поле Space free)
System.Keywords. Отображает теги, которые имеет изображение (поле Tags)
System.Language. Отображает язык, на котором создан файл (поле Language).
System.OfflineAvailability. Определяет, доступен ли данный сетевой файл автономно (Offline Availability).
System.PercentFull. Отображает количество использованного на диске места (поле Space Used).
System.Rating. Отображает рейтинг файла (поле Rating).
System.Size. Отображает размер файла (поле Size).
System.TotalFileSize. Отображает общий размер файлов в папке (поле Total File Size).
System.Audio.EncodingBitrate. Отображает битрейт звукового файла (поле Bit rate).
System.Document.PageCount. Отображает количество страниц в текстовом файле (поле Pages).
System.DRM.IsProtected. Отображает, защищен ли файл при помощи лицензии DRM (поле Protected).
System.Link.Target. Отображает путь к файлу, на который указывает ссылка (поле Target).
System.Link.Description. Отображает описание ссылки (поле Description).
System.Link.DateVisited. Отображает дату последнего использования ссылки (поле Date Visited).
System.File.Owner. Отображает имя владельца файла (поле Owner).
System.File.Description. Отображает описание файла (поле File Description).
System.File.Version. Отображает версию файла (поле File Version).
System.Image.HorizontalSize. Отображает размер файла изображения по горизонтали (поле Horizontal Size).
System.Image.VerticalSize. Отображает размер файла изображения по вертикали (поле Vertical Size).
System.Image.BitDepth. Отображает глубину изображения (поле Bit Depth).
System.Music.Artist. Отображает исполнителя музыкального файла (поле Artist).
System.Music.AlbumTitle. Отображает альбом, из которого данный музыкальный файл (поле Album Title).
System.Music.TrackNumber. Отображает номер музыкального файла в альбоме (поле Track Number).
System.Music.Genre. Отображает жанр песни (поле Genre).

А теперь давайте определим, где могут находиться параметры FullDetails и InfoTip. Например, они могут находиться в этих ветвях реестра.

  • HKCR\*. Определяют описание для всех файлов, зарегистрированных в системе. При этом описание может переопределяться непосредственно в ветви реестра, которая определяет описание для файлов данного расширения.
  • HKCR\AllFilesystemObjects. Определяют описание для любых объектов файловой системы (диски, папки, файлы и т.д.).

    Например, по умолчанию значение параметра FullDetails данной ветви реестра равно prop:System.PropGroup.FileSystem;System.DisplayName;System.CanonicalType; System.DisplayFolder;System.Size;System.DateCreated;System.DateModified;System.DateAccessed; System.Attributes;*System.OfflineAvailability;*System.OfflineStatus; *System.SharedWith;*System.File.Owner;*System.ComputerName. Обратите внимание на звездочки перед некоторыми метаданными. Они говорят, что данное поле должно отображаться только в том случае, когда его поддерживает файл.

  • HKCR\Drive. Определяет описание для дисков.
  • HKCR\Folder. Определяет описание для папок.
  • HKCR\Printers. Определяет описание для принтеров.

Если же вам нужно изменить описание для файлов конкретного расширения, тогда их ветвь реестра нужно еще найти. Для этого нужно посмотреть на параметр по умолчанию ветви реестра HKCR\«.расширение файла». После этого нужно найти ветвь реестра HKCR\«значение параметра по умолчанию предыдущей ветви реестра».

Раз уж мы затронули содержимое вкладки DETAILS диалога PROPERTIES, тогда нельзя не заметить, что на этой вкладке появилась новая ссылка: REMOVE PROPERTIES AND PERSONAL INFORMATION. С помощью данной ссылки можно быстро удалить значения тех метаданных, которые доступны пользователю как для чтения, так и для записи. Например, к таким метаданным относятся название артиста, песни и альбома для музыкальных файлов.

После того, как вы нажмете на ссылку, перед вами отобразится диалог REMOVE PROPERTIES (также этот диалог можно отобразить, если при нажатой клавише SHIFT в контекстном меню файла выбрать команду removeproperties). В этом диалоге напротив всех метаданных, значения которых можно удалить, расположен неустановленный флажок. Если флажок установить, после чего нажать кнопку OK диалога, тогда значения соответствующих метаданных будут удалены.

Изменение контекстного меню проводника и рабочего стола По умолчанию контекстное меню проводника и рабочего стола содержит в себе лишь такие команды, как команда создания нового файла, команда отображения диалога PROPERTIES (или диалога PERSONALIZATION для рабочего стола), команды группировки. Однако, как можно судить по множеству созданных программ, которые заменяют собой стандартное контекстное, пользователю нужно намного больше команд этого контекстного меню.

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

Сведения о контекстном меню рабочего стола и проводника расположены в ветви реестра HKCR\Directory\Background. Данный подраздел содержит в себе два дочерних подраздела.

  • Shell. Данный подраздел определяет стандартные команды контекстного меню рабочего стола и проводника, которые вызывают различные программы.

    Заметьте, что данный подраздел по умолчанию содержит вложенный подраздел cmd. Данный подраздел определяет команду контекстного меню рабочего стола и проводника, с помощью которой можно открыть программу cmd.exe, в которой будет по умолчанию открыт путь к каталогу, из которого вы вызвали данную команду. Однако, как вы, наверное, уже проверили, такой команды вообще не существует в контекстном меню рабочего стола и проводника. Чтобы она отобразилась, нужно в ветви реестра HKCR\Directory\Background\Shell\cmd удалить параметр строкового типа Extended.

    Одну новую команду в контекстное меню мы уже добавили. Как видите, это не так сложно. Если же вам нужно добавить собственную команду, которая будет отображаться в контекстном меню рабочего стола и проводника, тогда в данном подразделе нужно создать новый дочерний подраздел, название которого не имеет значение. Параметру по умолчанию данного подраздела нужно присвоить название команды, которое будет отображаться в контекстном меню. После этого в созданном вами подразделе нужно создать дочерний подраздел command, параметр по умолчанию которого будет определять команду, которая будет выполняться при выборе созданной вами команды контекстного меню рабочего стола и проводника. После этого новая команда отобразится в контекстном меню рабочего стола и проводника.

  • ShellEx. Данный подраздел содержит в себе вложенный подраздел ContextMenuHandler. Этот подраздел определяет команды контекстного меню рабочего стола и проводника, действия которых основаны на возможностях ActiveX-объектов.

    По умолчанию данный подраздел содержит в себе подраздел New, параметр по умолчанию которого определяет CLSID-номер ActiveX-объекта. Если вы удалите данный подраздел, тогда из контекстного меню рабочего стола и проводника исчезнет команда NEW.

    Кроме того, вы можете добавить собственные ActiveX-объекты к контекстному меню рабочего стола и проводника. Для этого в подразделе ShellEx нужно создать дочерний подраздел, например, с именем New2. В параметре по умолчанию подраздела New2 нужно указать CLSID-номер ActiveX-объекта, который нужно добавить к контекстному меню рабочего стола и проводника. К сожалению, многие команды ActiveX-объектов замещают собой команды других ActiveX-объектов, поэтому можно указать только один из приведенных ниже CLSID-номеров.

    Например, ниже описаны CLSID-номера наиболее интересных стандартных ActiveX-объектов. CLSID-номера остальных ActiveX-объектов, которые также можно добавить к контекстному меню, описаны в последней главе данной книги.

    • {2559a1f0-21d7-11d4-bdaf-00c04f60b9f0}. Добавляет к контекстному меню рабочего стола и проводника команду SEARCH. Данная команда замещает собой команды HELP и RUN.
    • {2559a1f1-21d7-11d4-bdaf-00c04f60b9f0}. Добавляет к контекстному меню рабочего стола и проводника команду HELP. Данная команда замещает собой команды SEARCH и RUN.
    • {2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}. Добавляет к контекстному меню рабочего стола и проводника команду RUN. Данная команда замещает собой команды HELP и SEARCH.
    • {5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}. Добавляет к контекстному меню рабочего стола и проводника cразу три команды: OPEN, EXPLORE и OPEN FILE LOCATION. Первые две команды отображают папку ПАНЕЛЬ УПРАВЛЕНИЯ, а последняя отображает папку рабочего стола. Данный ActiveX-объект может отображаться вместе с другим ActiveX-объектом, поэтому, если вы не хотите из контекстного меню удалять команду NEW (или любую другую) ради того, чтобы добавить эту команду, тогда просто создайте в подразделе Shellex дочерний подраздел, например, New3, а его параметру по умолчанию присвойте данный CLSID-номер.
    • {645FF040-5081-101B-9F08-00AA002F954E}. Добавляет к контекстному меню рабочего стола и проводника команду EMPTY RECYCLE BIN. Данный ActiveX-объект может отображаться вместе с другим ActiveX-объектом, поэтому, если вы не хотите из контекстного меню удалять команду NEW (или любую другую) ради того, чтобы добавить эту команду, тогда просто создайте в подразделе Shellex дочерний подраздел, например, New4, а его параметру по умолчанию присвойте данный CLSID-номер.

Изменение содержимого контекстного меню файлов различного расширения Для выполнения этой операции создавались целые программы, однако опытный пользователь, наверное, знал, что раньше для изменения содержимого контекстного меню файлов различного расширения достаточно было открыть вкладку ТИПЫ ФАЙЛОВ диалога FOLDER OPTIONS. К сожалению, в Windows Vista разработчики решили вообще убрать эту вкладку из диалога FOLDER OPTIONS. Поэтому теперь для изменения содержимого контекстного меню придется пользоваться реестром.

Многие пользователи вообще не могут понять, зачем нужно изменять контекстное меню файлов различного расширения, однако в некоторых случаях это очень облегчает жизнь. Мало того, что вы можете удалить ненужные элементы контекстного меню, так можно еще добавить новые элементы. Например, если вам часто нужно открывать исполняемые файлы в других программах (дизассемблере, редакторе ресурсов или даже в простом блокноте), тогда вы, без сомнения, уже думали над тем, как вообще это сделать. Действительно, как быстро открыть исполняемый файл в блокноте, если в его контекстном меню и в помине нет команды OPEN WITH…? Поэтому для примера давайте попробуем добавить к контекстному меню файлов с расширением .exe именно эту команду.

Чтобы это сделать, сначала нужно в ветви реестра HKEY_CLASSES_ROOT найти подраздел идентификатора для расширения .exe. Это можно сделать двумя способами. Во-первых, можно посмотреть на параметр по умолчанию ветви реестра HKCR\«расширение файла». То есть, на параметр по умолчанию ветви реестра HKCR\.exe. Значение этого параметра и будет названием раздела идентификатора, к которому нам нужно перейти. Вторым же способом является использование стандартной программы командной строки assoc.exe. Чтобы отобразить с ее помощью идентификатор расширения .exe, достаточно ввести команду assoc .exe.

После этого нужно перейти в ветвь реестра HKCR\«идентификатор расширения»\shell. Вы уже обратили внимание, что подраздел с названием shell мы уже встречали в предыдущем совете данной главы? Все верно, это один и тот же подраздел с одинаковой структурой и одинаковыми возможностями. Поэтому описывать здесь способ создания нового элемента контекстного меню файлов мы не будем. Но и так был описан ранее.

Итак, чтобы добавить команду OPEN WITH… к контекстному меню файлов с расширением .exe, нужно в ветви реестра HKCR\.exe\shell создать новый подраздел, допустим, с названием openWith. А в этом подразделе нужно создать вложенный подраздел с названием command. Чтобы добавить команду OPEN WITH…, параметру по умолчанию этого подраздела нужно присвоить строку rundll32 shell32.dll, OpenAs_RunDLL %1.

Если же вы хотите открывать исполняемые файлы только с помощью блокнота, тогда параметру по умолчанию достаточно присвоить значение notepad.exe %1.

Продолжение следует

Рейтинг: 5.00 [ 1 ] 
Оцените: 1 2 3 4 5
В начало записи
Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=447

В избранное