Вы должны войти, чтобы создавать сообщения и темы.

Программно проверить установленный Visual C++ 2015

Доброго времени суток!
Кто-нибудь, покажите пожалуйста, как можно через C# написать простенькую boolean функцию, которая будет куда-то лезть в систему и проверять наличие установленного Visual C++ 2015?

Привет.
Написал код по запросу, но возможно можно сделать ещё короче.

bool Visual2015Installed()
{
    bool flag = false;

    using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"))
    {
        flag = key.GetSubKeyNames().Select(program => key.OpenSubKey(program))
            .Any(programKey => programKey.GetValue("DisplayName")?.ToString().Contains("Visual C++ 2015") == true);
    }

    return flag;
}

 

Лайкнул Михаил
Михаил

Привет.
Сергей, тоже думал про этот способ, но такого значения нет в реестре, у меня по крайне мере), а он есть в СкопированоHKEY_CLASSES_ROOT\Installer\Dependencies.

Лайкнули Михаил и Сергей
МихаилСергей
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, у себя нашёл поэтому думал будет. Но в твоей ветке меньше значений, думаю будет даже лучше.
Код:

bool Visual2015Installed()
{
    bool flag = false;

    using (var key = Registry.ClassesRoot.OpenSubKey(@"Installer\Dependencies"))
    {
        flag = key.GetSubKeyNames().Select(program => key.OpenSubKey(program))
            .Any(programKey => programKey.GetValue("DisplayName")?.ToString().Contains("Visual C++ 2015") == true);
    }

    return flag;
}

 

Лайкнул Михаил
Михаил

Редактировать соообщение не могу. Вот более короткий вариант:

bool Visual2015Installed()
{
    using (var key = Registry.ClassesRoot.OpenSubKey(@"Installer\Dependencies"))
        return key.GetSubKeyNames().Select(program => key.OpenSubKey(program))
            .Any(programKey => programKey.GetValue("DisplayName")?.ToString().Contains("Visual C++ 2015") == true);
}

 

Лайкнули Zalexanninev15 и Михаил
Zalexanninev15Михаил

Спасибо большое, Сергей и Михаил, всё работает. 🔥

Лайкнул Сергей
Сергей