2010-03-05 1 views
0
string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; 
     using (Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(registryKey)) 
     { 
      (from a in key.GetSubKeyNames() 
      let r = key.OpenSubKey(a) 
      select new 
      { 
       Application = r.GetValue("DisplayName") 
      }).ToList().FindAll(c => c.Application != null).ForEach(c => Debug.WriteLine(c.Application)); 

Этот фрагмент отображает все имена приложения в реестре. Мне нужны пути к exe-файлам, которые запускают приложение, и мне нужно знать, как их запускать с помощью Process.Start();Получить пути всех приложений в реестре

ответ

1

На самом деле для этого нет нигде в Windows. Самое близкое, что вы получите, это перечислить начальное меню. Посмотреть этот пост для того, как сделать это: Programmatically access All Users Start Menu

В принципе, вы должны вызвать SHGetSpecialFolderPath API, чтобы получить расположение меню Пуск, а затем перечислить все ярлыки в этом пути.

В этом вопросе stackoverflow говорится о том, как извлечь значок из ярлыка; вы можете использовать тот же метод для извлечения рабочего пути и исполняемого файла, который вам потребуется для запуска приложения: Extract Icon from Windows .lnk (shortcut) file

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