2014-06-18 2 views
-2

Я хочу получить список установленных программ в системе в строке и их соответствующий путь в другой строке, чтобы при щелчке по имени в списке, которое программа должна быть выполнена. Вот код, который я пробовал, но он, кажется, дает имена только, но не местоположение программы.получить список установленных программ и их путь в списке в C#

string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; 
using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key)) 
{ 
    foreach(string subkey_name in key.GetSubKeyNames()) 
    { 
     using(RegistryKey subkey = key.OpenSubKey(subkey_name)) 
     { 
      Console.WriteLine(subkey.GetValue("DisplayName")); 
     } 
    } 
} 
+0

Есть 900 миллион дубликатов; это спрашивается пару раз в месяц или более. Пожалуйста, используйте функцию поиска. Обратите внимание, что это глупое дело. Пусть приложения управляют собственным деинсталлятором, если только вы не пишете операционную систему. –

ответ

0

Этот ключ реестра будет иметь информацию, касающуюся Деинсталляции. Он не будет знать фактическое имя или местоположение исполняемого файла программы.

Чтобы получить список программы установки с их исполняемым путем, используйте WMI. SO имеет Similar question, который может вам помочь

+0

Я также использовал WMI, но он не дает всех программ, установленных как редактор иконок vlc real world и т. Д. –

Смежные вопросы