Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

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


Глава 2. Настройка компонентов. 2.1. Функции поиска
Дата: 3 июля 2009, пятница

У вас возникли вопросы по Windows? Задайте их нам на Форуме (http://www.onestyle.com.ua/q.php). Вам достаточно просто зарегистрироваться!

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

Эта глава книги продолжает наше знакомство с «недокументированными» или нереализованными возможностями операционной системы Windows Vista. Если в предыдущей главе мы с вами рассмотрели возможности настройки интерфейса операционной системы, то в этой главе мы с вами рассмотрим возможности настройки компонентов Windows.

Механизм поиска является стандартным механизмом операционных систем Windows. Основная часть реализации этого механизма не претерпела никаких изменений с выхода Windows 9x. Тем не менее, каждая новая версия Windows содержит в себе некоторые дополнения к стандартному механизму поиска. Так, в Windows XP это был помощник по поиску. К сожалению, он был исключен из Windows Vista. Зато в Windows Vista входит возможность поиска файлов определенной категории.

Справка и поддержка: Основные сведения о механизме поиска можно получить из следующих разделов справки

50fdc72f-3274-4a53-ad84-c82c71a320cf Сохранение результатов поиска
56cdc9d9-597e-4ea5-bd62-24eb8abaafa3 Устранение неполадок при поиске 
58bc79b0-6b79-411d-9e95-629e9904f058 Можно ли включать или отключать индекс поиска Windows?
68dd14f2-a9cb-4134-a076-b8abb011a1f6 Ускорение поиска в Windows с помощью индекса: вопросы и ответы

Категории поиска файлов

На рисунке 2.01 представлено полное окно мастера РЕЗУЛЬТАТЫ ПОИСКА (с открытым полем РАСШИРЕННЫЙ ПОИСК), отображаемого после нажатия комбинации клавиш WINDOWS+F. Обратите внимание на поле мастера ПОКАЗАТЬ ТОЛЬКО: — именно с его помощью и реализуется механизм поиска файлов по категориям. По умолчанию выполняется поиск в файлах любых расширений.


Рис. 2.01. Мастер Результаты поиска

От категории, в которой выполняется поиск, зависит перечень расширений файлов, среди которых будет выполнен поиск введенного вами шаблона поиска. Интересной особенностью категорий Windows является то, что перечень расширений для них хранится в реестре. Для этого применяются параметры строкового типа ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\KindMap. Названия этих параметров соответствуют расширению файла (например, .txt), а значение параметра определяет название категории, при помощи которой будет выполняться поиск файлов с соответствующим расширением. В значении параметров можно указывать несколько категорий, перечислив их через точку с запятой.

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

Таблица 2.01. Переключатели поиска

Эл. Почта .eml, .msg, .nws, .vcs
Документ .xml, .xls, .xll, .wri, .wpd,
  .wks, .txt, .text, .rtf, .ppt и т.д.
Изображение .3ds, .a11, .ai, .ani, .art, .amf, .b1n,
   .b8, .bmp, .cdr, .cmp, .cps, .emf,.eps,
    .gif, .tif, .tiff, .jpeg, .jpg и т.д.
Музыка .aac, .aif, .aifc, .au, .cda, .dfs, .dss,
   .m3u, .midi, .mid, .mp3 и т.д.

Поиск в содержимом файлов

Вас никогда не раздражал тот факт, что механизм поиска операционной системы Windows может искать только в содержимом файлов с расширениями .txt, .inf, .log? Однако при этом он не может выполнить поиск, допустим, в файлах с расширением .mof (файлы с описанием свойств и методов инструментария управления Windows), хотя файлы .mof также являются обычными текстовыми файлами.

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

Но перед этим давайте рассмотрим расширения файлов, в содержимом которых Windows Vista искать умеет: .asm, .bat, .c, .cmd, .cpp, .dic, .h, .inf, .ini, .java, .log, .m3u, .mdb, .rc, .reg, .sql, .txt, .vbs, .wri и т.д.

Чтобы операционная система Windows Vista выполняла поиск в содержимом файлов, необходимо соответствующим образом установить переключатель Что искать, расположенный на вкладке Поиск диалога Свойства папки. По умолчанию поиск в содержимом файлов выполняется только для файлов, расположенных в индексированных каталогах.

Чтобы определить то, можно ли механизму поиска искать в содержимом файлов конкретного расширения, операционная система смотрит на значение параметра (по умолчанию) ветви реестра вида HKCR\«расширение файла»\PersistentHandler. В таблице 2.02 представлены возможные значения данного параметра.

Таблица 2.02. Значения параметра (по умолчанию) ветви HKCR\«расширение»\PersistentHandler

{098f2470-bae0-11cd-b579-08002b30bfeb} Поиск в содержимом запрещен.
{5e941d80-bf96-11cd-b579-08002b30bfeb} Содержимое считается обычным текстом.
{98de59a0-d175-11cd-a7bd-00006b827d94} Файл считается файлом пакета Office.
{eec97550-47a9-11cf-b952-00aa0051fe20} Файл считается файлом Интернет (html-файлы, css-файлы или asp-файлы).

В качестве примера, давайте взглянем на то, как реализуется поиск в содержимом файлов с расширением .dll (листинг 2.01).

Листинг 2.01. Добавление возможности поиска в содержимом файлов с расширением .dll.
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.dll\PersistentHandler]
 ="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

Сохранение результатов поиска

Кроме категорий поиска приятным отличием поиска Windows Vista от предыдущих версий Windows является измененных механизм сохранения запроса поиска, доступ к которому теперь можно получить намного проще.

Теперь, после того, как вы выполните поиск, на панели кнопок мастера РЕЗУЛЬТАТЫ ПОИСКА отобразится кнопка СОХРАНИТЬ УСЛОВИЯ ПОИСКА. После того, как вы ее нажмете, отобразится диалог сохранения результатов поиска в файле. По умолчанию результаты поиска сохраняются в папке %userprofiles%\Поиски. Кроме сохраненных вами файлов поиска данная папка содержит набор стандартных условий поиска, которые вы можете применять для выполнения поиска, например, недавно добавленной музыки, изображений, документов или вложения почтовых сообщений.

Файлы результатов поиска являются обычными текстовыми файлами в формате XML. Чтобы убедиться в этом, просто импортируйте reg-файл, приведенный в листинге 2.02, в реестр. Как вы наверное уже догадались, этот reg-файл добавляет к контекстному меню файлов поиска команду ПРОСМОТРЕТЬ, отображающую содержимое файла поиска в программе БЛОКНОТ.

Листинг 2.02. Добавление команды просмотреть к контекстному меню файлов поиска
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\SearchFolder\shell\open2]
 ="Просмотреть"

[HKEY_CLASSES_ROOT\SearchFolder\shell\open2\command]
 ="notepad.exe %1"

Другие настройки индексирования

Основным способом настройки механизма индексирования файлов является значок ПАРАМЕТРЫ ИНДЕКСИРОВАНИЯ, расположенный в папке ПАНЕЛЬ УПРАВЛЕНИЯ. К сожалению, с его помощью можно настроить не все возможности выполнения индексирования файлов.

Основные настройки индексирования файлов хранятся в ветви реестра HKLM\SOFTWARE\Microsoft\Windows Search и ее подразделах. Для этого применяются параметры DWORD-типа, некоторые из которых представлены в таблицах ниже (таблицы 2.03-2.05).

Таблица 2.03. Ветвь HKLM\SOFTWARE\Microsoft\Windows Search

  • *DefaultColumnFile. Хранит путь к файлу msscolumn.txt (содержит список индексируемых свойств файлов).
  • UseLowPriorityConfiguration. Определяет приоритет работы службы индексирования.

*Данный параметр имеет строковый тип.

Таблица 2.04. Ветвь HKLM\SOFTWARE\Microsoft\Windows Search\CatalogNames\Windows\SystemIndex

  • IgnoreShortcuts. Определяет, будут ли в индекс заноситься ярлыки файлов.
  • *Pkm:catalog:LastUrlIndex. Определяет название последнего индексируемого файла.

*Данный параметр имеет строковый тип.

Таблица 2.05. Ветвь HKLM\SOFTWARE\Microsoft\Windows Search\Gather

  • LowDiskMinimumMBytes. Определяет минимальный размер свободного места на диске (в Мбайт) с базой данных индекса, необходимый для индексации.
  • NotifyQueueFileLimit. Определяет максимальное количество файлов в индексе.

Программы командной строки для поиска

В операционных системах семейства Windows поиск можно выполнять не только с помощью графических средство, таких как мастер РЕЗУЛЬТАТЫ ПОИСКА, но и с помощью стандартных программ командной строки. В некоторых случаях это позволяет не только добиться более продуктивных результатов за минимальное количество времени, но и предоставляет уникальные возможности, недоступные при помощи графических средств.

Программа where

Основной программой для поиска из командной строки является программа where.exe. С помощью данной программы можно выполнить поиск по имени файла в отдельном каталоге, или каталоге и его подкаталогах (рекурсивный поиск). Возвращать же данная программа может либо просто код результата поиска (найдены файлы, удовлетворяющие шаблону, или нет), либо имя найденного файла, либо имя, размер, дату и время последнего изменения файла.

Существует для основных синтаксиса программы where:

  • Where «каталог»:«шаблон». Выполняет поиск файла по шаблону только в указанном каталоге. Через точку с запятой можно указать несколько каталогов для поиска. Например, следующая команда выполняет поиск всех файлов библиотек: WHERE "c:\windows;c:\windows\system32:*.dll".
  • Where /R «каталог» «шаблон». Выполняет рекурсивный поиск файла по шаблону в указанном каталоге и его подкаталогах. Через пробел можно указать несколько шаблонов для поиска. Например, команда WHERE /R c:\windows *.exe *.dll выполняет поиск исполняемых файлов и файлов библиотек.

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

Таблица 2.06. Опции программы where

/Q В качестве результата поиска возвратить код выхода (найден или нет файл)
/F Отобразить только имя файл (по умолчанию).
/T Отобразить размер файла, дату и время его изменения.

Программа find.exe

Выполнить поиск в содержимом файла можно при помощи программы командной строки find.exe. Следует заметить, что данная программа не может выполнять рекурсивный поиск.

Основной синтаксис программы следующий: find «шаблон искомой строки» «путь к каталогу и шаблон файла».

Например, команда find "canoni" c:\windows\system32\*.* > c:\1.txt, выполняет поиск строки canoni во всех файлах каталога c:\windows\system32. При этом результат работы программы find заносится в файл 1.txt, расположенный на диске C:\.

Заметьте, что программа find.exe может искать в файлах с любым расширением. То есть, на нее не налагаются ограничения графического механизма поиска, который по умолчанию не может искать в содержимом исполняемых файлов, библиотек и многих других расширений файлов.

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

Таблица 2.06. Опции программы find.exe

/V Отобразить все строки файлов, не содержащие в себе искомую строку.
/C Отобразить все строки файлов, содержащие в себе искомую строку.
/N Отобразить номера строк, которые подходят условиям поиска.
/I Игнорировать регистр искомого слова.
/OFF[LINE] Также искать в файлах с атрибутом Автономный

Программа findstr.exe

Если программа find.exe, на ваш взгляд, обладает малым количеством возможностей, тогда, возможно, вам понравится программа findstr.exe.

Синтаксис данной программы следующий: findstr.exe опции «шаблон искомой строки» «путь к каталогу и шаблон файла». То есть, подобен синтаксису программы find.exe. Правда, можно указать сразу несколько шаблонов — через пробелы.

Сразу хочется заметить, что при помощи опции /S данной программы можно выполнить рекурсивный поиск. Также данная программа поддерживает опции, доступные в программе find.exe. В программе findstr.exe это опции, соответственно, /V, /X, /N, /I, /OFF[LINE]. Однако также программа findstr.exe поддерживает опции, описанные в таблице 2.07. И еще один набор опций программы представлен в таблице 2.08 — эти опции изменяют синтаксис программы, заменяя собой одним из стандартных параметров.

Таблица 2.07. Дополнительные опции программы findstr.exe

/B Искать только в началах строк.
/E Искать только в конце строк.
/L Выполнить дословный поиск (без шаблонов).
/R Считать искомые строки регулярными выражениями.
/P Пропускать найденные строки, содержащие непечатаемые символы.
/M Отображать только имя файла, имеющего искомую строку.
/O Отображать найденные строки через пустую строку.

Таблица 2.08. Опции программы findstr.exe, изменяющие синтаксис программы

/F:файл Указывает файл, из которого будет взять список файлов для поиска.
/C:строка Определяет искомую строку (если строка содержит пробелы).
/G:файл Указывает файл, из которого будут взяты искомые строки.
/D:список_папок Через точку с запятой указывает каталоги, в которых нужно искать.

Ограничение поиска при помощи групповых политик

Настройки поиска можно изменить не только при помощи вкладки ПОИСК диалога СВОЙСТВА ПАПКИ или диалога ПАРАМЕТРЫ ИНДЕКСИРОВАНИЯ, но и при помощи групповых политик операционной системы Windows Vista.

Для этого достаточно открыть раздел групповых политик КОНФИГУРАЦИЯ КОМПЬЮТЕРА/АДМИНИСТРАТИВНЫЕ ШАБЛОНЫ/КОМПОНЕНТЫ WINDOWS/НАЙТИ, после чего воспользоваться одной из политик, представленных в таблице ниже.

Следует заметить, что в политике ОТКЛЮЧИТЬ ИНДЕКСИРОВАНИЕ ОБЩИХ ПАПОК имеются в виду не общие папки Windows, а общие папки Microsoft Office Outlook (впервые появились в Outlook 2003).

Также, возможно, вам будет непонятно назначение политики РАЗРЕШИТЬ ИСПОЛЬЗОВАНИЕ ДИАКРИТИЧЕСКИХ ЗНАКОВ. Она определяет, будут ли два слова, отличающиеся друг от друга только диакритическими знаками, считаться разными словами (по умолчанию они считаются идентичными). Диакритическими знаками можно назвать знаки, которые не входят в символьно-цифровой набор клавиш.

Таблица 2.09. Ветвь HKLM\SOFTWARE\Policies\Microsoft\Windows\Windows Search

  • AllowIndexingEncryptedStoresOrItems. Разрешить индексирование шифрованных файлов
  • AllowUsingDiacritics. Разрешить использование диакритических знаков
  • *DataDirectory. Место расположения данных индексации
  • PreventIndexingEmailAttachments. Отключить индексирование вложений электронной почты
  • PreventIndexingOfflineFiles. Отключить индексирование файлов в кэше автономных файлов
  • PreventIndexingOutlook. Отключить индексирование Microsoft Office Outlook
  • PreventIndexingPublicFolders. Отключить индексирование общих папок
  • PreventIndexingUncachedExchangeFolders. Отключить индексирование некэшированных папок Exchange
  • PreventUsingAdvancedIndexingOptions. Не отображать расширенные параметры индексирования на панели управления

*данный параметр имеет строковый тип

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

Рейтинг: 0 
Оцените: 1 2 3 4 5
moemesto.ru bobrdobr.ru - добавить в социальные закладки
В начало записи
Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=575

В избранное