Расширяем возможности поиска Windows XP

Источник: WinLine
Петр Каньковски

Windows XP не находит некоторые файлы, содержащие заданное вами слово. Программа не будет выполнять поиск в файлах с расширениями log, cpp, h, css и некоторых других, даже если эти файлы содержат слово или фразу, которую вы ищете. Даже если указать шаблон *.log в имени файла, Windows XP все равно не будет находить нужный файл.


поиск Windows XP
Поиск файлов с расширением log не работает

Чтобы убедиться в этом, создайте текстовый файл и запишите в него одно слово (например, "поиск"). Сохраните этот файл с расширением log или cpp. Теперь запустите поиск файлов (Пуск > Поиск), укажите каталог, в котором находится файл, и нужное слово. В результате программа не сможет найти созданный файл.

Причина проблемы состоит в следующем. При поиске фразы в каждом файле Windows XP проверяет расширение файла и, исходя из него, выбирает нужный алгоритм поиска. Например, если программа поиска обнаружила txt-файл, она ищет в нем нужную фразу в кодировке ASCII. Если понадобилось искать в doc-файле MS Word, программа переключается на кодировку Unicode. Когда ей встречается mp3-файл или exe-файл, она вообще не ищет в нем заданную фразу. Зачем впустую тратить время, ведь в машинном коде или в звуковом файле она никогда не найдет текст.

Идея поиска с анализом типа файла очень хорошая, но вот реализация немного подкачала. Во-первых, во времена DOS часто встречались файлы с расширением doc, содержащие обычный ASCII-текст. Расширение не является достаточным признаком для того, чтобы определить тип файла. Во-вторых, mp3-файлы содержат текстовые ID3-тэги, а exe-файлы - информацию об авторе и названии программы (так называемая version info). Windows XP не умеет выполнять поиск этой информации. В-третьих, Windows XP не знает таких распространенных расширений, как cpp (программа на языке С++), css (таблица стилей для web-страницы), log (отчет об ошибках).

Первые две проблемы мы исправить не можем, однако у нас остается возможность научить программу находить файлы cpp, css и log.

Запустите редактор реестра, откройте раздел HKEY_CLASSES_ROOT.cpp и создайте в нем подраздел PersistentHandler. Затем можно указать одно из следующих значений по умолчанию:

  • {098f2470-bae0-11cd-b579-08002b30bfeb} - не выполнять поиск
  • {5e941d80-bf96-11cd-b579-08002b30bfeb} - текстовый файл (ASCII, кодировка Windows)
  • {98de59a0-d175-11cd-a7bd-00006b827d94} -Microsoft Word, Excel или PowerPoint (doc, xls, ppt)
  • {eec97550-47a9-11cf-b952-00aa0051fe20} - html-файл или asp-файл

Файлы cpp, css, log содержат обычный текст, поэтому для них следует использовать значение {5e941d80-bf96-11cd-b579-08002b30bfeb}.


поиск Windows XP
Указываем тип файла в реестре

После выполнения этой нехитрой операции перезагрузите компьютер. Теперь Windows XP должна находить все нужные файлы.


поиск Windows XP
Поиск работает нормально

Аналогичным способом можно заставить Windows XP искать текстовые файлы с другими расширениями. Кстати, чтобы быстро вызвать окно поиска, нажмите клавишу с эмблемой Windows + F.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=2553