В C # .NET 2.0 или выше, как получить список всех установленных приложений на ПК с Vista - PullRequest
2 голосов
/ 22 октября 2009

Как использовать C # .NET 2.0 или более позднюю версию и Visual Studio 2008, как создать список всех установленных приложений на ПК с Windows Vista?

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

Вторая часть этого вопроса - что-то вроде SuperUser.com, но, надеюсь, первая часть считается «программированием».

Спасибо

Ответы [ 4 ]

5 голосов
/ 22 октября 2009

Вы можете посмотреть ссылку на раздел реестра ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Uninstall. Проверьте эти ссылки:

http://www.onedotnetway.com/get-a-list-of-installed-applications-using-linq-and-c/ http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/ac23690a-f5f8-46fc-9047-c369f4370fac

2 голосов
/ 22 октября 2009

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

    RegistryKey uninstall = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall");
    List<string> applicationList = new List<string>();
    foreach (string subKeyName in uninstall.GetSubKeyNames())
    {
        RegistryKey subKey = uninstall.OpenSubKey(subKeyName);
        string applicationName = subKey.GetValue("DisplayName", String.Empty).ToString();
        if (!String.IsNullOrEmpty(applicationName))
        {
            applicationList.Add(applicationName);
        }
        subKey.Close();
    }

    uninstall.Close();

    applicationList.Sort();

    foreach (string name in applicationList)
    {
        Console.WriteLine(name);    
    }

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: В моем примере нет проверки на нулевое значение / ошибку!

1 голос
/ 22 октября 2009

См. исходный код этой библиотеки

foreach(var info in BlackFox.Win32.UninstallInformations.Informations.GetInformations())
{
    Console.WriteLine(info.ToString());
}
0 голосов
/ 22 октября 2009

Необходимо также учитывать различные уровни установки.

  • Возможно, приложению были сделаны какие-либо действия (удалены и т. Д.) С момента его установки.
  • Некоторые приложения не «устанавливаются», а запускаются как открытые двоичные файлы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...