C#: список установленных программ

csharp (1)

Иногда существует необходимость получения в вашу программу списка установленных на данном компьютере программ. Цели могут быть разными – от попытки избежать конфликта ПО до шпионажа.

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

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

SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Он включает в себя множество подключей, каждый из которых содержит в себе информацию о какой-либо программе. Какие значения оттуда могут быть нам интересны? Во-первых, DisplayName – имя программы. Во-вторых, InstallLocation – место хранения файлов программы. В-третьих, все остальное: InstallDate (дата установки), InstallSource (путь к установочному файлу), DisplayVersion и другие.

Получение этих данных я покажу на примере C#-кода.

Для копания в системном реестре нам понадобятся несколько объектов пространства имен Microsoft.Win32.

Прошу обратить внимание, что некоторые перечисленные выше значения для определенных программ могут отсутствовать, поэтому стоит активно использовать обработчик исключений – инструкцию try-catch.

RegistryKey key = Registry.LocalMachine.OpenSubKey(«SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall»);
string[] skeys = key.GetSubKeyNames(); // Все подключи из key
int length = skeys.Length;
// Проход по всем подключам
for (int i = 0; i < length; i++) { // Получаем очередной подключ RegistryKey appKey = key.OpenSubKey(skeys[i]); string name; try // Пробуем получить значение DisplayName { name = appKey.GetValue("DisplayName").ToString(); } catch (Exception) { // Если не указано имя, то пропускаем ключ continue; } Console.WriteLine(name); appKey.Close(); } key.Close();

Данный код выведет список имен установленных программ. Аналогично можно получить другие значение.

Читайте так же:
Оставить комментарий

Последние публикации