2010-03-05 6 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)); 

Cet extrait affiche tous les noms de l'application dans le registre. J'ai besoin des chemins vers les fichiers exe qui exécutent l'application et j'ai besoin de savoir comment les exécuter en utilisant Process.Start();Afficher les chemins de toutes les applications du registre

Répondre

1

Il n'y a pas vraiment de source définitive pour cela dans Windows. Le plus proche vous obtiendrez en énumérant le menu de démarrage. Voir cet article pour savoir comment faire: Programmatically access All Users Start Menu

Fondamentalement, vous devez appeler l'API SHGetSpecialFolderPath pour récupérer l'emplacement du menu de démarrage, puis énumérer tous les raccourcis dans cette voie.

Cette question stackoverflow explique comment extraire l'icône d'un raccourci; vous pouvez utiliser la même méthode pour extraire le chemin de travail et l'exécutable dont vous auriez besoin pour lancer l'application: Extract Icon from Windows .lnk (shortcut) file

Questions connexes