В этой статье мы немного поговорим о развитии приложения Windows "Установка и удаление программ". Ведь немногие знают, что даже выполнение такой простой операции, как установка или удаление программы, заставляет Windows получать информацию о размере и дате приложения.

Установка и удаление программы связаны с выполнением многих операций «под капотом». Где апплет Programs and Features (Программы и компоненты) находит информацию о размере и дате установки приложения? Со временем это место менялось.

В Windows 95 был апплет Add/Remove Programs (Установка и удаление программ) панели управления. В первой версии он просто содержал список приложений, которые зарегистрировали средство удаления приложения. Когда пользователь запрашивал удаление программы, Windows просто запускала зарегистрированное средство — все довольно просто.

После Windows 95 опрос пользователей показал, что у некоторых возникают проблемы с приложениями. У них жесткий диск переполнялся и приходилось удалять часть приложений, чтобы освободить место. Однако имеющийся апплет «Установка и удаление программ» не сильно помогал определить, какие программы стоит удалить. Названия приложения в списке не всегда было достаточно для определения, стоит ли его сохранить.

Имя, звание и серийный номер

В Windows 2000 апплет Add/Remove Programs стал более эвристическим, чтобы пользователи могли принимать более информированные решения. Опрос пользователей показал, что для этого прежде всего нужна информация о дате установки приложения, размере занимаемого дискового пространства и частоте использования приложения. Это исключительно полезная информация, но как ее получить?

При регистрации средства удаления приложение должно было указывать только имя и путь к средству удаления. Откуда же берется остальная информация?

При регистрации средства удаления приложения могут также указывать дату установки и размер. Но что, если приложение не предоставляет эти сведения? И откуда взять данные о частоте использования?

Апплету Add/Remove Programs приходится «догадываться». Для каждого приложения, зарегистрировавшего средство удаления, апплет анализирует все ярлыки в меню Start (Пуск) в поиске слов, совпадающих с именем приложения.

Например, если в апплете имеется запись «Awesome Program for Windows» и в меню Start есть ярлык «Pretty Good Program for Windows», считается, что совпадают два слова — «Program» и «Windows». Апплет Add/Remove Programs выбирает имя с наибольшим числом совпадающих слов. Если совпадают как минимум два слова, апплет использует соответствующий ярлык для определения частоты использования приложения.

Игра в угадайку

Если в информации об удалении приложения отсутствуют дата установки или размер, игра в угадайку продолжается. Апплет Add/Remove Programs просматривает папку Program Files на всех дисках, выполняя такой же анализ, как и с меню Start. Он ищет название папки, в котором как минимум два слова совпадают с именем приложения. Если ничего не удается найти, просматриваются корневые каталоги всех дисков.

Размер «победившей» в этом процессе папки используется в качестве размера приложения, а дата создания — как дата установки. Помните, что можно избавить Windows от этого поиска по диску, просто зарегистрировав дату установки и размер приложения в апплете Add/Remove Programs.

Если бы люди знали, насколько ненадежна информация в Add/Remove Programs, возможно они бы меньше использовали этот апплет в качестве источника информации. Недавно один из клиентов интересовался, как получить доступ к информации о последней дате использования приложений, чтобы автоматически удалить программы, которые давно не использовались. Эти сведения чуть надежнее той информации, которую вам выдаст катающийся на скейте соседский сынишка в ответ на вопрос, много ли ему задали домашних заданий на сегодняшний вечер.

В Windows XP дизайн апплета Add/Remove Programs претерпел изменения, но базовая функциональность осталась прежней. Одно из изменений, на которое обратили внимание большинство, — исчезновение наклонной черты. Апплет стал называться Add or Remove Programs.

В Windows Vista в апплет были внесены существенные изменения. Теперь это не панель управления с особым дизайном, а что-то сильно похожее на традиционное окно проводника. В процессе обновления снова изменилось название — теперь это Programs and Features (Программы и компоненты).

Есть еще одна мелочь: пропала строка Frequency of use (Используется). Поскольку частота использования больше не отображается, Windows не нужно больше выполнять все описанные операции с меню Start.

Больше никакого поиска

В Windows 7 убрали последнюю операцию поиска. Если приложение не регистрирует дату установки, Windows определяет ее как дату внесения информации в апплет. Если приложение не регистрирует размер, Windows просто оставляет в соответствующем столбце пробел.

Почему же эта информация постепенно исчезала от апплета Programs and Features? Эти возможности появились в 2000 году, когда жесткие диски были очень маленькими по нынешним меркам. Переполнение жестких дисков случалось часто. Но со временем размеры дисков взрывообразно выросли и проблема исчерпания дискового пространства утратила свою остроту.

Помните, как компания Microsoft запустила в 1998 году TerraServer и как общественное мнение было взбудоражено терабайтным размером дискового хранилища? Система хранения (общей емкостью примерно 3 ТБ) состояла из 324 жестких дисков, размещенных в семи стойках. Сегодня жесткий диск размером 1 ТБ стоит примерно 100 долларов и свободно умещается в руке.